要设置延迟重启启动,可以使用 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/nCC5 著作权归作者所有。请勿转载和采集!

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