如何以编程方式监视泊坞窗容器是否退出?

我在VM主机上运行多个命名的docker容器(200+)。 我有一个pipe理员脚本/代码,应该从主机pipe理容器。 我想知道是否有任何基于事件的机制在容器停止/失败时得到通知。 这样我可以重新启动停止的容器。

我能想到的一个解决scheme是定期执行docker检查并查看State.PidState.Running确认状态。

但是,不是定期轮询,而是在容器发生故障时通过pid / name通知pipe理器,这样可以更好地重新启动特定的容器。

一般情况下,是否有方法通过编程方式监视不是父进程的进程的进程状态?

查看docker事件 – 容器“死”事件。

还有一个http接口,以编程方式获取相同的信息 – 请参阅此处

您可能希望进行“docker编排”的networkingsearch – 许多项目正在兴起,以您所描述的方式pipe理多个容器。

如果您只想重新启动容器,为什么不使用重新启动策略 ?

 docker run --restart=always IMAGE 

psutil似乎做你想要的东西http://pypi.python.org/pypi/psutil从Python

import psutil psutil.pids()[1,2,3,5,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,第24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44, 49,51,52,53,54,56,57,58,59,61,62,63,64,65,66,67,69,70,71,72,73,74, 79,80,81,82,94,97,98,117,118,137,182,183,184,185,186,187,188,189,190,191,200,现在参考图214,229,230,411,416,419,526,527,542,543,544,545,555,569,625,709,714,756,781,782,796,862,863,864,869, 914,944,945,948,954,996,1052,1061,1064,1067,1170,1174,所述化合物可以通过使用本文所述的化合物来制备,所述化合物可以通过使用本文所述的化合物来制备,其中所述化合物是: 2459,2491,2493,2497,2501,2505,2509,2513,2524,2546,2549,2551,2554,2563,2567,2572,2573,2576,2578,2586,2595,2598,2624,2644,2555,2510,2510,2510,2510,2510,2510,2510,2510,2510,2510,2910,2510,2510,2510,2510,2510,2910,2510,2510,2510,2910,2510,2910,2510,2910,2510,2910,2510,2910,2510,2910,2510,2910,2510,2910,2510,2910,2510,2910,2510,2910,2510,2910,2510,2910,2510,2910,2510,2910,2510,2910,2510,2910,2510,2910,2510,2910,2510,2910,2510,2910,2510,2510,2910,2510,2510,2510,2910,2510,2510,2510,2510,2910,2510,2510,2510,2910,2510,2510,2510,2510,2510 2665,2 所述化合物可以通过使用本发明的化合物来制备,所述化合物为: 3138,3164,3211,3368,3371,3557,4125,4352,4443,4444,4743,4818,4819,4840,4841,4844,4845,4866,4876,6142,6363,6366,6372,6378,6385, 6391,6452,6518,6524,6531,6555,6658,6601] p = psutil.Process(2862)p.status()'sleeping'