docker内的容器设置了内存限制当容器内程序使用内存超过了限制的时候怎么设置延迟的重启启动怎么通过第三方监控程序去重启这个容器
要设置延迟重启启动,可以使用Docker的restart策略。通过设置restart策略为“on-failure”和“restart-delay”参数,可以让Docker在容器发生失败后延迟一定时间再重启容器。
具体操作:
- 在启动容器时,加上--restart选项,将restart策略设置为“on-failure”:
docker run --restart=on-failure:5 ...
这里的“on-failure”表示容器发生失败时重启,而“5”表示重启的最大次数。
- 在--restart选项后加上“restart-delay”参数,将重启延迟时间设置为需要的时间间隔,例如60秒:
docker run --restart=on-failure:5 --restart-delay=60 ...
这样就会在容器发生失败后,等待60秒再重启容器。
关于第三方监控程序,可以使用类似于cAdvisor这样的监控工具。cAdvisor是一个开源的容器监控工具,可以监控容器的资源使用情况,并提供API接口。通过使用cAdvisor的API接口,可以获取容器的资源使用情况,并根据需要重启容器。
具体操作:
- 安装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
- 使用cAdvisor的API接口获取容器的资源使用情况:
curl http://localhost:8080/api/v1.3/containers/<container_id>/stats
这里的<container_id>是要监控的容器的ID。
- 根据容器的资源使用情况,判断是否需要重启容器,并使用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 著作权归作者所有。请勿转载和采集!