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作为CMDENTRYPOINT以启用容器的连续处理。 有一些场景,你真的需要让容器仍然运行,即使它的过程应该很快结束。 例子是你的cron还没有准备好自动抓取