docker运行命令时退出容器
Dockerfile
FROM node:8.1.0 RUN http-server RUN mkdir /app COPY . /app WORKDIR /app RUN npm install EXPOSE 2000
成功地build立图像
docker run -d -p 8101:2000 --name xyz image
容器已创build并退出。 运行docker logs container_id
,不显示任何内容。
这是我跟随的过程,但无法知道我的容器退出的原因。
它正在运行默认入口点,并且当入口点完成其工作时,容器退出。
如果要编辑入口点,则可以指定您自己的入口点,也可以查看默认入口点在做什么。 您可以在库/节点中find特定版本的dockerfile ans入口点详细信息
只要Docker文件中的CMD命令启动的进程仍在运行,Docker容器就会运行。
在你的情况下,你没有在你的docker文件中指定CMD命令,因此你的容器将立即退出。
我可以看到你打算运行一个http服务器。 在这种情况下,最后删除RUN http-server
并将其replace为CMD http-server
。
您可以尝试ping google.com
作为CMD
或ENTRYPOINT
以启用容器的连续处理。 有一些场景,你真的需要让容器仍然运行,即使它的过程应该很快结束。 例子是你的cron还没有准备好自动抓取