2017-08-14 111 views
0

Dockerfile容器退出时搬运工运行命令

FROM node:8.1.0 
RUN http-server 
RUN mkdir /app 
COPY . /app 
WORKDIR /app 
RUN npm install 
EXPOSE 2000 

建立成功

docker run -d -p 8101:2000 --name xyz image 

容器中创建和离开图像。 运行时docker logs container_id,没有显示。

这是我跟随的过程,但无法知道我的容器退出的原因。

+1

它正在运行默认入口点,并且当入口点完成其工作时,容器退出。 – Ayushya

+0

没问题,明白了,你可以跟我分享这个参考吗? – Aditya

+0

我想从[library/node](https://hub.docker.com/_/node/) – Ayushya

回答

1

它正在运行默认入口点,并且当入口点完成其工作时,容器退出。

如果要编辑入口点,那么要么指定您自己的入口点,要么查看默认入口点在做什么。你可能会发现你的特定版本的dockerfile ANS入口点细节library/node

0

只要Docker文件中的CMD命令启动的进程仍在运行,Docker容器就会运行。

就你而言,你没有在你的docker文件中指定CMD命令,因此你的容器会立即退出。

我可以看到你打算运行一个http服务器。在这种情况下,请删除RUN http-server并最终替换为CMD http-server

0

您可以尝试ping google.comCMDENTRYPOINT,使容器的连续过程。有些情况下,即使流程应该很快结束,您仍然需要让该容器仍然运行。示例是您的cron尚未准备好进行自动刮取时