要设置延迟重启启动,可以使用Docker的restart策略。通过设置restart策略为“on-failure”和“restart-delay”参数,可以让Docker在容器发生失败后延迟一定时间再重启容器。

具体操作:

  1. 在启动容器时,加上--restart选项,将restart策略设置为“on-failure”:
docker run --restart=on-failure:5 ...

这里的“on-failure”表示容器发生失败时重启,而“5”表示重启的最大次数。

  1. 在--restart选项后加上“restart-delay”参数,将重启延迟时间设置为需要的时间间隔,例如60秒:
docker run --restart=on-failure:5 --restart-delay=60 ...

这样就会在容器发生失败后,等待60秒再重启容器。

关于第三方监控程序,可以使用类似于cAdvisor这样的监控工具。cAdvisor是一个开源的容器监控工具,可以监控容器的资源使用情况,并提供API接口。通过使用cAdvisor的API接口,可以获取容器的资源使用情况,并根据需要重启容器。

具体操作:

  1. 安装cAdvisor并启动:
docker run \
  --volume=/:/rootfs:ro \
  --volume=/var/run:/var/run:rw \
  --volume=/sys:/sys:ro \
  --volume=/var/lib/docker/:/var/lib/docker:ro \
  --publish=8080:8080 \
  --detach=true \
  --name=cadvisor \
  google/cadvisor:latest
  1. 使用cAdvisor的API接口获取容器的资源使用情况:
curl http://localhost:8080/api/v1.3/containers/<container_id>/stats

这里的<container_id>是要监控的容器的ID。

  1. 根据容器的资源使用情况,判断是否需要重启容器,并使用Docker API重启容器:
curl -X POST http://localhost:2375/containers/<container_id>/restart

这里的<container_id>是要重启的容器的ID,而Docker API的默认端口是2375。

通过这样的方式,就可以使用第三方监控程序监控容器的资源使用情况,并根据需要重启容器


原文地址: https://www.cveoy.top/t/topic/datb 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录