डॉकर कंटेनर में कई प्रक्रियाएं चल रही हैं, उनके पीआईडी कंटेनर नेमस्पेस में अलग हैं, क्या यह पता लगाने का कोई तरीका है कि डॉकर होस्ट पर उनके पीआईडी क्या हैं?डॉकर कंटेनर के अंदर चल रही प्रक्रिया के होस्ट में पीआईडी क्या है?
उदाहरण के लिए वहाँ एक अपाचे वेब एक डोकर कंटेनर के अंदर चल रहा सर्वर, (मैं Docker Hub से अपाचे + PHP छवि का उपयोग), और अपाचे है, जब यह शुरू होता है कंटेनर के अंदर अधिक कार्यकर्ता प्रक्रियाओं पैदा करता है। वे कार्यकर्ता प्रक्रिया वास्तव में इनकमिंग अनुरोधों को संभालने में कामयाब रहे हैं।
# pstree -p 1
apache2(1)-+-apache2(8)
|-apache2(9)
|-apache2(10)
|-apache2(11)
|-apache2(12)
`-apache2(20)
माता पिता अपाचे प्रक्रिया कंटेनर प्रक्रिया नाम स्थान के अंदर पीआईडी 1 पर चलता है: इन प्रक्रियाओं मैं डोकर कंटेनर के अंदर pstree
चलाने को देखने के लिए। हालांकि मेजबान के नजरिए से यह भी पहुँचा जा सकता है, लेकिन मेजबान पर अपने पीआईडी अलग है और docker compose
आदेश चलाकर निर्धारित किया जा सकता: इस से
$ docker inspect --format '{{.State.Pid}}' container
17985
हम देख सकते हैं कि कंटेनर प्रक्रिया के भीतर से पीआईडी 1 मेजबान पर पीआईडी 17 9 85 के लिए नामस्थान मानचित्र। इसलिए मैं मेजबान पर pstree
चला सकते हैं, अपाचे प्रक्रिया के बच्चों सूची:
$ pstree -p 17985
apache2(17985)─┬─apache2(18010)
├─apache2(18011)
├─apache2(18012)
├─apache2(18013)
├─apache2(18014)
└─apache2(18164)
इस से मुझे लगता है कि एक ही तरह से कैसे पीआईडी 1 मेजबान पर 17,985 पीआईडी को कंटेनर नक्शे में, यह भी नक्शे :
- पीआईडी 8 कंटेनर पीआईडी 18011 के लिए मेजबान पर 18010, और
- पीआईडी 9 पीआईडी करने के लिए;
- पीआईडी 10 18,012 और इतने पर पीआईडी को ...
(यह उपकरण है कि केवल मेजबान पर ही उपलब्ध हैं का उपयोग कर डोकर कंटेनर से प्रक्रियाओं डिबग करने के लिए अनुमति देता है मुझे, और कंटेनर में नहीं , स्ट्रेस की तरह)
समस्या यह है कि मुझे नहीं पता कि यह कितना सुरक्षित है कि पस्ट्री कंटेनर और मेजबान दोनों में प्रक्रियाओं को सूचीबद्ध करता है।
बहुत अच्छा होगा अगर कोई डॉकर कंटेनर के अंदर चल रही एक विशिष्ट प्रक्रिया के होस्ट पर पीआईडी क्या है, यह जानने के लिए एक और अधिक विश्वसनीय तरीका सुझा सकता है।
पीआईडी की भी मतलब हो सकता है ओएस धागे, कम से कम पर linux। आप कई धागे बनाकर और पीआईडीएस की गिनती करके जावा (या अन्य भाषा) के साथ जांच सकते हैं। – ieugen