每次重新启动时,如何使Docker容器每次运行脚本?

时间:2020-01-23 04:15:43

标签: docker dockerfile

我知道我可以在容器启动时使用dockerfile的CMD RUNENTRYPOINT命令运行脚本,但是当容器启动时如何使容器每次运行脚本容器在失败时重新启动?

1 个答案:

答案 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出来。请注意,尽管停止容器也将停止随后的日志,因此您必须再次运行它以查看下一次重新启动。