我正在运行一个带有健康-cmd的码头集装箱,当它停止工作时,我知道它会变成不健康的。
$ docker run
--name=some-container \
--health-cmd='curl -sS http://127.0.0.1:5000 || exit 1' \
--health-timeout=10s \
--health-retries=3 \
--health-interval=5s \
--restart on-failure \
container-image 当容器更改其健康状态时,我希望重新启动它。怎么能做到呢?如何触发重启?
我的码头版本19.03.1,构建74b1e89
发布于 2019-09-10 10:35:18
取决于您的Dockerfile,如果容器失败了,容器将使用代码1退出,因为您的命令是:
--health-cmd='curl -sS http://127.0.0.1:5000 || exit 1'因此,当只有检查失败时,您的重新启动策略on-failure将在~35秒container之后重新启动timeout + retries + interval。
您可以在许多条件下确定的timeout + retries + interval值--它们没有完美的值。
我觉得你的命令很好
发布于 2019-09-10 07:42:49
您可以使用自愈重新启动不健康的码头容器。示例:
docker run -d \
--name autoheal \
--restart=always \
-e AUTOHEAL_CONTAINER_LABEL=all \
-v /var/run/docker.sock:/var/run/docker.sock \
willfarrell/autoheal注意:您必须首先对您的码头图像进行健康检查。详情请参见https://docs.docker.com/engine/reference/builder/#healthcheck。
https://stackoverflow.com/questions/57866106
复制相似问题