मैंने एक डॉकटर पुल किया और उस छवि को सूचीबद्ध कर सकता है जिसे डाउनलोड किया गया है। मैं इस छवि की सामग्री देखना चाहता हूं। नेट पर सर्च किया लेकिन कोई सीधा जवाब नहीं मिला।
मैंने एक डॉकटर पुल किया और उस छवि को सूचीबद्ध कर सकता है जिसे डाउनलोड किया गया है। मैं इस छवि की सामग्री देखना चाहता हूं। नेट पर सर्च किया लेकिन कोई सीधा जवाब नहीं मिला।
जवाबों:
आप बस उस छवि का उपयोग करके एक इंटरेक्टिव शेल कंटेनर चला सकते हैं और उस छवि को जो भी सामग्री है, उसका पता लगा सकते हैं।
उदाहरण के लिए:
docker run -it image_name sh
या एक के साथ छवियों के लिए निम्नलिखित entrypoint
docker run -it --entrypoint sh image_name
या, यदि आप यह देखना चाहते हैं कि चित्र कैसे बनाया गया था Dockerfile
, तो इसके चरणों का अर्थ है :
docker image history --no-trunc image_name > image_history
चरणों को image_history
फ़ाइल में लॉग इन किया जाएगा ।
docker run -it --entrypoint cmd <image_name>
काम करेगा।
यहां स्वीकृत उत्तर समस्याग्रस्त है, क्योंकि इस बात की कोई गारंटी नहीं है कि एक छवि में किसी भी प्रकार का इंटरैक्टिव शेल होगा। उदाहरण के लिए, ड्रोन / ड्रोन की छवि में एक ही आदेश शामिल है /drone
, और इसमें एक ENTRYPOINT
अच्छी तरह से है, इसलिए यह विफल हो जाएगा:
$ docker run -it drone/drone sh
FATA[0000] DRONE_HOST is not properly configured
और यह विफल हो जाएगा:
$ docker run --rm -it --entrypoint sh drone/drone
docker: Error response from daemon: oci runtime error: container_linux.go:247: starting container process caused "exec: \"sh\": executable file not found in $PATH".
यह एक असामान्य विन्यास नहीं है; कई न्यूनतम छवियों में केवल द्विपदीय लक्ष्य सेवा का समर्थन करने के लिए आवश्यक हैं। सौभाग्य से, एक छवि फाइल सिस्टम की खोज के लिए तंत्र हैं जो छवि की सामग्री पर निर्भर नहीं करते हैं । सबसे आसान शायद docker export
कमांड है, जो एक टार आर्काइव के रूप में एक कंटेनर फाइल सिस्टम निर्यात करेगा । तो, एक कंटेनर शुरू करें (यह कोई फर्क नहीं पड़ता कि यह विफल होता है या नहीं):
$ docker run -it drone/drone sh
FATA[0000] DRONE_HOST is not properly configured
फिर docker export
फाइल सिस्टम को निर्यात करने के लिए उपयोग करें tar
:
$ docker export $(docker ps -lq) | tar tf -
docker ps -lq
"मुझे सबसे हाल ही में डोकर कंटेनर की आईडी देना" वहाँ का मतलब है। आप इसे एक स्पष्ट कंटेनर नाम या आईडी से बदल सकते हैं।
आपको केवल छवि सामग्री देखने के लिए एक कंटेनर शुरू नहीं करना चाहिए। उदाहरण के लिए, आप दुर्भावनापूर्ण सामग्री देखना चाहते हैं, न कि उसे चलाना। "रन" के बजाय "बनाएं" का उपयोग करें;
docker create --name="tmp_$$" image:tag
docker export tmp_$$ | tar t
docker rm tmp_$$
docker export tmp_$$ > image-fs.tar
।
docker export tmp_$$ | tar t
काम नहीं करेगा।
tar
आपके मशीन पर स्थापित नहीं हो सकता है। tar --help
इसे जाँचने का प्रयास करें ।
-o
फ़ाइल को लिखने के लिए निर्दिष्ट करने के लिए पैरामीटर का उपयोग कर सकते हैं । जैसे docker export -o c:\temp\tmp_$$.tar tmp_$$
।
docker save nginx > nginx.tar
tar -xvf nginx.tar
निम्नलिखित फाइलें मौजूद हैं:
https://sreeninet.wordpress.com/2016/06/11/looking-inside-container-images/
या
आप TUI के साथ अंतःक्रियात्मक रूप से छवि सामग्री देखने के लिए गोता का उपयोग कर सकते हैं
docker
क्या जरूरत है, जो कि अनिवार्य रूप से, एक अलग प्रकार की आर्काइव फ़ाइल है।
docker save --output nginx.tar nginx:latest
अन्यथा, डॉक्टर के अनुसार, इसमें "सभी मूल परतें, और सभी टैग + संस्करण" होंगे
एक छवि आप को चलाने के लिए है की विस्तृत सामग्री को सूचीबद्ध करने के docker run --rm image/name ls -alR
जहां --rm
साधन के रूप में जल्द ही बाहर निकलता है एक कंटेनर के रूप में के रूप में हटा दें।
ls
उपलब्ध है और मेंPATH
प्रदर्शनकारी छवि !
यह पता लगाने की क्या खोल के प्रकार में है bash
या sh
या ...
पहले छवि का निरीक्षण करें: docker inspect name-of-container-or-image
entrypoint
या के लिए देखो cmd
जौन वापसी में।
फिर करो: docker run --rm -it --entrypoint=/bin/bash name-of-image
एक बार अंदर करें: ls -lsa
या कोई अन्य शेल कमांड जैसे:cd ..
-it
इंटरैक्टिव ... और tty के लिए खड़ा है। --rm
निकालें कंटेनर के लिए खड़ा है चलाने के बाद।
ls
। या वास्तव में कोई भी सामान्य उपकरण।
हम एक सरल एक की कोशिश कर सकते हैं:
docker image inspect image_id
यह डॉकर संस्करण में काम किया:
DockerVersion": "18.05.0-ce"
विंडोज के लिए डॉकर ईई (हाइपर- V सर्वर 2016 पर 17.06.2-ee-6) C:\ProgramData\docker\windowsfilter\
के साथ, मेजबान ओएस के पथ पर विंडोज कंटेनरों की सभी सामग्रियों की जांच की जा सकती है ।
कोई विशेष बढ़ते की जरूरत नहीं है।
docker ps -a
आउटपुट से फ़ोल्डर आईडी उपसर्ग कंटेनर आईडी द्वारा पाया जा सकता है ।
एंकर नामक एक निशुल्क खुला स्रोत उपकरण है जिसे आप कंटेनर छवियों को स्कैन करने के लिए उपयोग कर सकते हैं। यह कमांड आपको कंटेनर इमेज में सभी फाइलों को सूचीबद्ध करने की अनुमति देगा
लंगर- cli छवि सामग्री myrepo / ऐप: नवीनतम फाइलें