Je travaille plusieurs conteneurs nommés Docker (200+) sur mon hôte VM. J'ai un script / code manager censé gérer les conteneurs de l'hôte. J'aimerais savoir s'il y a un mécanisme basé sur des événements à être averti lorsqu'un conteneur arrête / échoue. Afin que je puisse redémarrer le conteneur arrêté. P>
Une solution à laquelle je pourrais penser est de faire une inspection périodique d'inspecter et de regarder Mais, au lieu d'interrogation périodique, il serait préférable que le gestionnaire soit notifié avec PID / nom lorsqu'un conteneur échoue de sorte que le conteneur particulier puisse être redémarré. P>
Sur une note générale, existe-t-il des moyens de surveiller de manière programmable le statut d'un processus à partir d'un processus différent qui n'est pas le parent? p> state.pid code> ou
état.running code> pour confirmer l'état. P>
3 Réponses :
Psutil semble faire ce que vous voulez http://pypi.python.org/pypi/psutil De python p>
importer pstuiti 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, 45, 46, 47, 48, 49, 51, 52, 53 , 54, 56, 57, 58, 59, 61, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73, 74, 76, 77, 78, 79, 80, 81, 82 , 94, 97, 98, 117, 118, 137, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 200, 201, 210, 211, 213, 214, 229, 230, 411 , 416, 419, 526, 527, 542, 543, 544, 542, 543, 544, 625, 709, 782, 756, 781, 782, 796, 862, 863, 864, 869, 914, 944, 945, 948 , 954, 996, 1052, 1170, 1174, 1179, 1180, 1183, 1241, 1240, 1323, 1328, 1323, 1328, 1351, 1354, 1351, 1354, 1351, 1354, 1390, 1408, 1457, 1507, 1531 1631, 1662, 1933, 1989, 1981, 1989, 2413, 2422, 2429, 2442, 2429, 2449, 2449, 2449, 2449, 2461, 2457, 2461, 2457, 2461, 2457, 2489, 2490, 2491, 2493, 2491, 2493, 2497 2501, 2505, 2509, 2513, 2524, 2546, 2563, 2567, 2563, 2567, 2563, 2567, 2578, 2573, 2576, 2578, 2586, 2578, 2586, 2595, 2598, 2624, 2644, 2655, 26667, 2687, 2669, 2687, 2689 , 2693, 2699, 2744, 2752, 2785, 2794, 2785, 2804, 2817, 2804, 2817, 2804, 2817, 2804, 2817, 2804, 2817, 2804, 2817, 2804, 2862, 2862, 2862, 2862, 2862, 2862, 2862, 2862, 2862, 2962, 2862, 2862, 2962, 2962, 2962, 2962, 2972, 2986, 2903, 2986, 2903, 2986, 2903, 2986, 3138, 32371, 3211, 3368, 32371, 3557, 4125, 4352, 4743, 4444, 4743, 4818, 4819, 4818, 4819, 4818, 4841, 4818, 4845, 4818, 4845, 6142, 6363, 6366, 6364, 6378, 6372, 6378, 6372, 6378, 6372, 6378, 6385, 6378, 6385, 6391, 6385, 6391, 6385, 6391, 6385, 6391, 6452, 6518, 6524, 6518, 6524, 6518, 6524, 6531, 6555, 6558, 6601] p = psutil.procession (2862) p.status () 'Dormir' p> blockQuote> blockQuote> blockQuote>
Merci. Va regarder dans ça.
Si vous voulez simplement redémarrer les conteneurs, pourquoi n'utilisez-vous pas un Politique de redémarrage ?
docker run --restart=always IMAGE
Merci pour la suggestion. 'Redémarrer' est l'un des cas d'utilisation. Idéalement, je devrais pouvoir prendre plus de décisions que simplement redémarrer du programme Manager.
regarder Docker Events - Il y a un événement pour le conteneur 'Die '. p>
Il existe également une interface HTTP pour obtenir les mêmes informations programmatiquement - voir ici p>
Vous voudrez peut-être faire une recherche sur le Web pour «Docker Orchestration» - de nombreux projets qui ressortent pour gérer plusieurs conteneurs de la manière dont vous décrivez. P>
Merci beaucoup. Docker Events Code> était ce que je cherchais.