我知道我可以在容器启动时使用dockerfile的CMD
RUN
和ENTRYPOINT
命令运行脚本,但是当容器启动时如何使容器每次运行脚本容器在失败时重新启动?
答案 0 :(得分:4)
entrypoint每次容器启动或重新启动时运行。通常的做法是将启动配置放入shell脚本中,然后在脚本中exec
最后exec
进入应用程序的“ true”入口点。 (有关docker run -d --restart=always --entrypoint=sh alpine -c "sleep 5; echo Exiting; exit"
为何如此重要的信息,请参见What purpose does using exec in docker entrypoint scripts serve?。
请记住,docker实际上只是文件系统,进程和网络命名空间的包装。除了重新运行最初开始的过程外,它无法以其他任何方式重新启动容器。
您可以通过如下调用自己尝试:
docker logs -f
如果您Exiting
该容器,则每5秒就会看到break
出来。请注意,尽管停止容器也将停止随后的日志,因此您必须再次运行它以查看下一次重新启动。