尽pipe服务运行,Docker容器立即退出

类似的问题似乎也存在,但都没有明确的答案(至less不是我)。 我有一个容器里面有一个bin/start-ds文件的LDAP服务器。 问题是一旦shell脚本完成,容器就退出。 如果脚本只是打印信息,我会理解退出,但在我的情况下,它启动一个过程。 而且由于一个进程正在运行,我希望我的容器无限期运行,因为我在detach模式下启动它。 但事实并非如此,它立即退出。 任何指针将非常感激。 以下是我简单的Dockerfile

 FROM unboundid-base:0.2 MAINTAINER helloworld CMD ["/home/unboundid/UnboundID-DS/bin/start-ds"] 

据我猜测,你使用: http : //docs.oracle.com/cd/E19623-01/820-6171/startds.html

所以根据文档添加:–nodetach选项

 CMD ["/home/unboundid/UnboundID-DS/bin/start-ds", "--nodetach"] 

可以有两个原因:

  1. 添加–nodetach

CMD ["/home/unboundid/UnboundID-DS/bin/start-ds", "--nodetach"]

  1. 运行后容器立即退出的其他原因是缺乏资源。 您可能拥有足够的资源,但同时有多个容器正在耗费您的资源。 或者你只是运行你的容器,但可能该容器需要更多的资源来运行,而你没有达到它。分配更多的资源,增加你的RAM和内存,并尝试再次运行你的容器。

希望这可以帮助。

我在Docker容器中运行所有UnboundID服务器产品以进行开发/testing/故障排除。 我的Dockerfile CMD行是:

 CMD ${UBID_HOME}/bin/start-${UBID_PRODUCT};/bin/bash 

只要你离开一个运行前台进程的容器就不会退出,还有什么比离开shell更好的进程来与服务器交互。