Zzr*_*rot 1 containers docker dockerfile
我想在执行run命令之后保持docker容器运行(容器立即退出docker run...我知道命令:
while :;do
sleep 300
done
Run Code Online (Sandbox Code Playgroud)
在docker run将使它运行但如何编辑Dockerfile本身,以使其运行?
您可以通过将要执行的命令放入脚本中,并将脚本设置为Docker在启动容器时运行的命令来执行此操作:
FROM sixeyed/ubuntu-with-utils
RUN echo 'ping localhost &' > /bootstrap.sh
RUN echo 'sleep infinity' >> /bootstrap.sh
RUN chmod +x /bootstrap.sh
CMD /bootstrap.sh
Run Code Online (Sandbox Code Playgroud)
当您从此Dockerfile构建映像并从映像运行容器时,它将ping在后台和sleep前台启动,因此您可以使用docker run -d它来守护容器,它将继续运行.
这并不理想 - Docker只监视它在运行容器时启动的最后一个进程,因此它将检查sleep而不是ping.如果ping命令错误,容器将继续运行.通常,您希望真正的应用程序是您开始使用的唯一内容CMD.