Docker
छवियों का प्रबंधन
खोज…
वाक्य - विन्यास
- डॉकटर चित्र [विकल्प] [रिपोर्ट [: TAG]]
- डॉकटर निरीक्षण [विकल्प] कंटेनर | छवि [कंटेनर | छवि ...]
- docker पुल [विकल्प] NAME [: TAG | @DIGEST]
- docker rmi [विकल्प] छवि [छवि ...]
- docker टैग [विकल्प] IMAGE [: TAG] [REGISTRYHOST /] [USERNAME /] NAME [: TAG]
डॉकर हब से एक छवि प्राप्त करना
आमतौर पर, छवियों को डॉकर हब से स्वचालित रूप से खींच लिया जाता है। Docker किसी भी छवि को Docker Hub से खींचने का प्रयास करेगा जो पहले से ही Docker होस्ट पर मौजूद नहीं है। उदाहरण के लिए, docker run ubuntu
का उपयोग करते हुए जब ubuntu
छवि पहले से ही डॉकर होस्ट पर नहीं है, तो डोकर नवीनतम ubuntu
छवि का एक पुल शुरू करने का कारण होगा। डॉकर हब से मैन्युअल रूप से लाने या छवि को अपडेट करने के लिए docker pull
का उपयोग करके एक छवि को अलग से खींचना संभव है।
docker pull ubuntu
docker pull ubuntu:14.04
एक अलग छवि रजिस्ट्री से खींचने या एक छवि के विशिष्ट संस्करण को खींचने के लिए अतिरिक्त विकल्प मौजूद हैं। एक वैकल्पिक रजिस्ट्री का संकेत पूर्ण छवि नाम और वैकल्पिक संस्करण का उपयोग करके किया जाता है। उदाहरण के लिए, निम्नलिखित कमांड ubuntu:14.04
को खींचने का प्रयास करेगी ubuntu:14.04
की registry.example.com
से छवि ubuntu:14.04
रजिस्ट्री:
docker pull registry.example.com/username/ubuntu:14.04
स्थानीय रूप से डाउनलोड की गई छवियों को सूचीबद्ध करना
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest 693bce725149 6 days ago 967 B
postgres 9.5 0f3af79d8673 10 weeks ago 265.7 MB
postgres latest 0f3af79d8673 10 weeks ago 265.7 MB
चित्र संदर्भित करना
डॉकर कमांड जो एक छवि का नाम लेता है, चार अलग-अलग रूपों को स्वीकार करता है:
प्रकार | उदाहरण |
---|---|
शॉर्ट आईडी | 693bce725149 |
नाम | hello-world (चूक :latest टैग) |
नाम + टैग | hello-world:latest |
संग्रह | hello-world@sha256:e52be8ffeeb1f374f440893189cd32f44cb166650e7ab185fa7735b7dc48d619 |
नोट: आप केवल एक छवि को उसके पाचन द्वारा संदर्भित कर सकते हैं यदि उस छवि को मूल रूप से उस पाचन का उपयोग करके खींचा गया था। एक छवि के लिए डाइजेस्ट को देखने के लिए (यदि कोई उपलब्ध है) docker images --digests
।
छवियाँ निकालना
छवियाँ हटाने के लिए docker rmi
कमांड का उपयोग किया जाता है:
docker rmi <image name>
एक छवि को निकालने के लिए पूर्ण छवि नाम का उपयोग किया जाना चाहिए। जब तक रजिस्ट्री नाम को हटाने के लिए छवि को टैग नहीं किया गया है, इसे निर्दिष्ट करने की आवश्यकता है। उदाहरण के लिए:
docker rmi registry.example.com/username/myAppImage:1.3.5
इसके बजाय उनकी आईडी द्वारा छवियों को निकालना भी संभव है:
docker rmi 693bce725149
एक सुविधा के रूप में, छवि आईडी के केवल कुछ वर्णों को निर्दिष्ट करके उनकी छवि आईडी द्वारा छवियों को निकालना संभव है, जब तक कि निर्दिष्ट विकल्प असंदिग्ध है:
docker rmi 693
नोट: छवियों को हटाया जा सकता है भले ही उस छवि का उपयोग करने वाले मौजूदा कंटेनर हों; docker rmi बस छवि को "अनटैग" करती है।
यदि कोई कंटेनर छवि का उपयोग नहीं कर रहा है तो यह कचरा-एकत्र है। यदि कोई कंटेनर किसी छवि का उपयोग करता है, तो एक बार सभी कंटेनर हटा दिए जाने पर छवि कचरा-एकत्र हो जाएगी। उदाहरण के लिए:
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5483657ee07b hello-world "/hello" Less than a second ago Exited (0) 2 seconds ago small_elion
$ docker rmi hello-world
Untagged: hello-world:latest
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5483657ee07b 693bce725149 "/hello" Less than a second ago Exited (0) 12 seconds ago small_elion
बिना आरंभ किए कंटेनरों के साथ सभी छवियां निकालें
उन सभी स्थानीय छवियों को हटाने के लिए, जिनके कंटेनर नहीं हैं, आप एक पैरामीटर के रूप में छवियों की एक सूची प्रदान कर सकते हैं:
docker rmi $(docker images -qa)
सभी छवियाँ निकालें
यदि आप छवियों को हटाना चाहते हैं, भले ही उनके पास प्रारंभ कंटेनर हो या नहीं, बल ध्वज ( -f
) का उपयोग करें:
docker rmi -f $(docker images -qa)
डैंगलिंग छवियां निकालें
यदि किसी चित्र को टैग नहीं किया गया है और किसी कंटेनर द्वारा उपयोग नहीं किया जा रहा है, तो यह 'झूलना' है और इसे इस तरह हटाया जा सकता है:
docker images -q --no-trunc -f dangling=true | xargs -r docker rmi
छवियों के लिए डॉकर हब खोजें
आप खोज आदेश का उपयोग करके छवियों के लिए डॉकर हब खोज सकते हैं:
docker search <term>
उदाहरण के लिए:
$ docker search nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 3565 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for docker c... 717 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable ... 232 [OK]
...
छवियों का निरीक्षण
docker inspect <image>
आउटपुट JSON फॉर्मेट में है। आप केवल इच्छित कुंजियों को पार्स और प्रिंट करने के लिए jq
कमांड लाइन उपयोगिता का उपयोग कर सकते हैं।
docker inspect <image> | jq -r '.[0].Author'
उपरोक्त कमांड छवियों के लेखक का नाम दिखाएगा।
छवियों को टैग करना
एक छवि को टैग करना विभिन्न छवि संस्करणों का ट्रैक रखने के लिए उपयोगी है:
docker tag ubuntu:latest registry.example.com/username/ubuntu:latest
टैगिंग का दूसरा उदाहरण:
docker tag myApp:1.4.2 myApp:latest
docker tag myApp:1.4.2 registry.example.com/company/myApp:1.4.2
डॉकर चित्रों को सहेजना और लोड करना
docker save -o ubuntu.latest.tar ubuntu:latest
यह कमांड ubuntu:latest
को बचाएगा ubuntu:latest
निर्देशिका में ubuntu.latest.tar
नाम के साथ वर्तमान निर्देशिका में एक टारबॉल संग्रह के रूप में। इस टारबॉल संग्रह को दूसरे होस्ट में ले जाया जा सकता है, उदाहरण के लिए rsync
का उपयोग करना, या संग्रहण में संग्रहीत करना।
एक बार टारबॉल ले जाने के बाद, निम्न कमांड फाइल से एक इमेज बनाएगी:
docker load -i /tmp/ubuntu.latest.tar
अब ubuntu:latest
से कंटेनर बनाना संभव है ubuntu:latest
हमेशा की तरह ubuntu:latest
छवि।