Vee*_*dra 6 health-monitoring docker
Docker版本1.12,我Dockerfile从这里得到了一个
FROM nginx:latest
RUN touch /marker
ADD ./check_running.sh /check_running.sh
RUN chmod +x /check_running.sh
HEALTHCHECK --interval=5s --timeout=3s CMD ./check_running.sh
Run Code Online (Sandbox Code Playgroud)
我能够使用check_running.shshell脚本滚动更新和运行状况检查.这里,check_running.sh脚本被复制到image,因此启动的容器具有它.
现在,我的问题是从容器和脚本的外侧还有任何方法进行健康检查.
我除了使用运行状况检查命令来获取容器性能(取决于我们在脚本中写的内容),如果容器性能不好,它应该回滚到以前的版本(监视容器的进程类型,如果它不好,它应该回滚到以前)
谢谢
有什么方法可以从同样位于外部的容器和脚本的外部进行运行状况检查。
一种监视容器的过程,如果不好,则应回滚到以前的过程
您有几种选择:
cat script.sh | docker exec -it container sh -s。ps -Zax或尝试寻找守护程序的子代),也可以为每个容器指定一个特定的容器用户ID,--user 12345然后寻找该ID,例如连接到其服务。您必须确保它在正确的容器中运行。您可以在下面访问容器的文件系统/var/lib/docker/devicemapper/mnt/<hash>/rootfs。docker inspect --format='{{json .State.Health.Status}}' <containername>结合Dockerfile中的一行检查其运行状况:
HEALTHCHECK CMD wget -q -s http://google.com检查容器是否可以访问互联网。我建议使用选项3,因为将来它可能会与其他工具更加兼容。
| 归档时间: |
|
| 查看次数: |
7132 次 |
| 最近记录: |