如何监视容器中正在运行的进程

时间:2019-05-03 13:09:47

标签: docker containers

我是Docker容器的新手,我的问题是如何监视容器内正在运行的进程。例如,我有一个运行Apache的容器。我怎么知道容器内的apache进程是否被杀死但我的容器仍在运行。

我们如何确保容器中的特定进程正在运行,如果该进程出现故障,我们将如何获得警报?

2 个答案:

答案 0 :(得分:1)

Dockerfile参考有答案:

https://docs.docker.com/engine/reference/builder/

更具体地讲,HEALTHCHECK指令:

https://docs.docker.com/engine/reference/builder/#healthcheck

基本上,当容器的入口点失败时,容器会死:

https://docs.docker.com/engine/reference/builder/#entrypoint

但是,无论如何,从主机的进程列表中还可以看到在容器内运行的进程,因此您可以安全地使用ps aux| grep httpd的输出来监视apache的PID。

答案 1 :(得分:0)

在生产中,您不仅要使用docker run,还需要使用诸如kubernetes之类的容器协调器,在其中定义运行状况检查(例如活动性和就绪性探针)的运行状况,协调器将负责其余操作,它将重新启动如果apache由于某种原因而失败,则该容器。

https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes