【发布时间】:2018-10-18 05:20:56
【问题描述】:
我正在尝试在 docker 容器中运行自定义服务。该服务以myservice start 启动 - 然后分叉和守护主进程并退出。然后主进程在网络套接字上侦听传入命令。该过程本身运行良好。
在我的 Dockerfile 中,我将其作为最后两个命令:
WORKDIR "/app/myservice"
CMD ["bin/myservice", "start"]
镜像构建成功。现在,当我这样运行它时:
docker run -d -p 7890:7890 myimage
容器启动然后退出。在日志中,我可以看到服务在容器以退出代码 0 退出之前启动。这是预期的,因为来自 dockerfile 的命令以代码 0 退出。
看看this question,很明显如果我这样运行它:
docker run -dit -p 7890:7890 myimage
即使在启动我的服务的批处理脚本退出后,容器也应该保持运行。然而情况并非如此 - 容器终止后立即退出。
我错过了什么?如何让容器保持运行?
【问题讨论】:
-
只要启动的命令处于活动状态,容器就会存在,可以添加
; sleep infinity或诸如此类
标签: docker containers