我已经看过一堆教程似乎做了我想做的事情,但出于某种原因,我的Docker容器退出了.基本上,我在Docker容器中设置了一个Web服务器和几个守护进程.我通过一个名为bash的脚本完成了最后的部分run-all.sh,我在Dockerfile中运行CMD.run-all.sh看起来像这样:
service supervisor start
service nginx start
Run Code Online (Sandbox Code Playgroud)
我在Dockerfile中启动它,如下所示:
CMD ["sh", "/root/credentialize_and_run.sh"]
Run Code Online (Sandbox Code Playgroud)
我可以看到,当我手动运行时(即使用-i -t/bin/bash访问图像),服务都能正常启动,并且当我运行图像时,一切看起来都正常运行,但它会退出一次它完成了我的流程.我希望这些进程无限期地运行,据我所知,容器必须继续运行才能实现.然而,当我跑步时docker ps -a,我看到:
? docker_test docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c7706edc4189 some_name/some_repo:blah "sh /root/run-all.sh 8 minutes ago Exited (0) 8 minutes ago grave_jones
Run Code Online (Sandbox Code Playgroud)
是什么赋予了?为什么要退出?我知道我可以在我的bash脚本末尾添加一个while循环来保持它,但是什么是阻止它退出的正确方法?
docker ×1