खोज…


वाक्य - विन्यास

  • docker rm [विकल्प] कंटेनर [कंटेनर ...]
  • डॉकटर संलग्न [विकल्प] कंटेनर
  • docker execute [विकल्प] कंटेनर COMMAND [ARG ...]
  • docker ps [विकल्प]
  • डॉकटर लॉग्स [विकल्प] कंटेनर
  • डॉकटर निरीक्षण [विकल्प] कंटेनर | छवि [कंटेनर | छवि ...]

टिप्पणियों

  • ऊपर दिए गए उदाहरणों में, जब भी कंटेनर docker कमांड का एक पैरामीटर होता है, तो उसे <container> या container id या <CONTAINER_NAME> रूप में उल्लिखित किया जाता है। इन सभी जगहों पर आप कंटेनर को निर्दिष्ट करने के लिए कंटेनर का नाम या कंटेनर आईडी पास कर सकते हैं।

लिस्टिंग कंटेनर

$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                     NAMES
2bc9b1988080        redis               "docker-entrypoint.sh"   2 weeks ago         Up 2 hours          0.0.0.0:6379->6379/tcp    elephant-redis
817879be2230        postgres            "/docker-entrypoint.s"   2 weeks ago         Up 2 hours          0.0.0.0:65432->5432/tcp   pt-postgres

docker ps अपने आप ही वर्तमान में चल रहे कंटेनर को प्रिंट करता है। सभी कंटेनरों को देखने के लिए (रुकने वालों सहित), -a ध्वज का उपयोग करें:

$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                    PORTS                     NAMES
9cc69f11a0f7        docker/whalesay     "ls /"                   26 hours ago        Exited (0) 26 hours ago                             berserk_wozniak
2bc9b1988080        redis               "docker-entrypoint.sh"   2 weeks ago         Up 2 hours                0.0.0.0:6379->6379/tcp    elephant-redis
817879be2230        postgres            "/docker-entrypoint.s"   2 weeks ago         Up 2 hours                0.0.0.0:65432->5432/tcp   pt-postgres

एक विशिष्ट स्थिति वाले कंटेनरों को सूचीबद्ध करने के लिए, परिणामों को फ़िल्टर करने के लिए -f कमांड लाइन विकल्प का उपयोग करें। यहाँ उन सभी कंटेनरों को सूचीबद्ध करने का एक उदाहरण दिया गया है जो बाहर निकल चुके हैं:

$ docker ps -a -f status=exited
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                    PORTS                     NAMES
9cc69f11a0f7        docker/whalesay     "ls /"                   26 hours ago        Exited (0) 26 hours ago

यह भी -q स्विच के साथ केवल कंटेनर आईडी सूचीबद्ध करने के लिए संभव है। यह अन्य यूनिक्स उपयोगिताओं (जैसे grep और awk ) के साथ परिणाम पर काम करना बहुत आसान बनाता है:

$ docker ps -aq
9cc69f11a0f7
2bc9b1988080
817879be2230

जब docker run --name mycontainer1 साथ एक कंटेनर लॉन्च किया docker run --name mycontainer1 तो आप एक विशिष्ट नाम देते हैं न कि एक यादृच्छिक नाम (रूप में mood_famous, जैसे कि nostalgic_stallman), और इस तरह की कमांड के साथ इसे खोजना आसान हो सकता है

docker ps -f name=mycontainer1

रेफरिंग कंटेनर

डॉकटर कमांड जो एक कंटेनर का नाम लेते हैं, तीन अलग-अलग रूपों को स्वीकार करते हैं:

प्रकार उदाहरण
पूर्ण यूयूआईडी 9cc69f11a0f76073e87f25cb6eaf0e079fbfbd1bc47c063bcd25ed3722a8cc4a
शॉर्ट यूयूआईडी 9cc69f11a0f7
नाम berserk_wozniak

अपने सिस्टम पर कंटेनरों के लिए इन मूल्यों को देखने के लिए docker ps का उपयोग करें।

UUID को डॉकर द्वारा जनरेट किया गया है और इसे संशोधित नहीं किया जा सकता है। जब आप इसे प्रारंभ करते हैं तो आप कंटेनर को एक नाम प्रदान कर सकते हैं docker run --name <given name> <image> । यदि आप कंटेनर को शुरू करने के समय एक निर्दिष्ट नहीं करते हैं तो डॉक कंटेनर में एक यादृच्छिक नाम उत्पन्न करेगा।

नोट : UUID का मूल्य (या 'छोटा' UUID) किसी भी लम्बाई का हो सकता है जब तक कि दिया गया मूल्य एक कंटेनर के लिए अद्वितीय न हो

कंटेनरों को शुरू करना और रोकना

एक चल रहे कंटेनर को रोकने के लिए:

docker stop <container> [<container>...]

यह कंटेनर में एक SIGTERM में मुख्य प्रक्रिया भेजेगा, इसके बाद SIGKILL द्वारा यदि यह अनुग्रह अवधि के भीतर बंद नहीं होता है। प्रत्येक कंटेनर का नाम छपते ही बंद हो जाता है।

एक कंटेनर शुरू करने के लिए जिसे रोका गया है:

docker start <container> [<container>...]

यह पृष्ठभूमि में पारित प्रत्येक कंटेनर को शुरू करेगा; प्रत्येक कंटेनर का नाम शुरू होते ही प्रिंट हो जाता है। कंटेनर को अग्रभूमि में शुरू करने के लिए, -a ( --attach ) ध्वज पास करें।

कस्टम प्रारूप वाले कंटेनरों की सूची बनाएं

docker ps --format 'table {{.ID}}\t{{.Names}}\t{{.Status}}'

एक विशिष्ट कंटेनर ढूँढना

docker ps --filter name=myapp_1

कंटेनर आईपी का पता लगाएं

अपने कंटेनर का IP पता जानने के लिए, उपयोग करें:

docker inspect <container id> | grep IPAddress

या docker निरीक्षण का उपयोग करें

docker inspect --format '{{ .NetworkSettings.IPAddress }}' ${CID}

डॉकटर कंटेनर को पुनः आरंभ करना

docker restart <container> [<container>...]

विकल्प - समय : सेकंड को रोकने के लिए कंटेनर को मारने से पहले इंतजार करना (डिफ़ॉल्ट 10)

docker restart <container> --time 10

निकालें, हटाएं और कंटेनरों को साफ करें

docker rm का उपयोग इस तरह के एक विशिष्ट कंटेनर को हटाने के लिए किया जा सकता है:

docker rm <container name or id>

सभी कंटेनरों को निकालने के लिए आप इस अभिव्यक्ति का उपयोग कर सकते हैं:

docker rm $(docker ps -qa)

डिफ़ॉल्ट रूप से docker चल रहे कंटेनर को नहीं हटाएगा। जो भी कंटेनर चल रहा है, वह चेतावनी संदेश का उत्पादन करेगा और हटाया नहीं जाएगा। अन्य सभी कंटेनरों को हटा दिया जाएगा।

वैकल्पिक रूप से आप xargs उपयोग कर सकते हैं:

docker ps -aq -f status=exited | xargs -r docker rm 

जहाँ docker ps -aq -f status=exited कंटेनर ID की सूची लौटाएगा, जिसमें "Exit" की स्थिति है।

चेतावनी: उपरोक्त सभी उदाहरण केवल 'बंद' कंटेनरों को हटा देंगे।

कंटेनर को हटाने के लिए, चाहे वह रोका गया हो या नहीं, आप बल फ्लैग -f उपयोग कर सकते हैं:

docker rm -f <container name or id>

सभी कंटेनरों को हटाने के लिए, राज्य की परवाह किए बिना:

docker rm -f $(docker ps -qa)

यदि आप dead स्थिति वाले केवल कंटेनरों को निकालना चाहते हैं:

docker rm $(docker ps --all -q -f status=dead)

यदि आप exited स्थिति वाले केवल कंटेनरों को निकालना चाहते हैं:

docker rm $(docker ps --all -q -f status=exited)

कंटेनरों को सूचीबद्ध करते समय उपयोग किए जाने वाले फ़िल्टर के ये सभी क्रमपरिवर्तन हैं।

संस्करण 1.3 के बाद अंतरिक्ष का उपयोग करने वाले दोनों अवांछित कंटेनरों और झूलने वाली छवियों को हटाने के लिए, निम्नलिखित का उपयोग करें (यूनिक्स उपकरण df समान):

$ docker system df

सभी अप्रयुक्त डेटा को निकालने के लिए:

$ docker system prune 

पहले से मौजूद डॉकटर कंटेनर पर कमांड चलाएँ

docker exec -it <container id> /bin/bash

पहले से चल रहे कंटेनर में कुछ त्वरित परीक्षण करने के लिए लॉग इन करना या एप्लिकेशन क्या कर रहा है यह देखना आम है। अक्सर यह लॉग के कारण खराब कंटेनर उपयोग प्रथाओं को दर्शाता है और परिवर्तित फ़ाइलों को वॉल्यूम में रखा जाना चाहिए। यह उदाहरण हमें कंटेनर में लॉग इन करने की अनुमति देता है। यह मानता है कि / बिन / बैश कंटेनर में उपलब्ध है, यह / बिन / श या कुछ और हो सकता है।

docker exec <container id> tar -czvf /tmp/backup.tgz /data
docker cp <container id>:/tmp/backup.tgz .

यह उदाहरण एक टार में डेटा निर्देशिका की सामग्री को संग्रहीत करता है। फिर docker cp आप इसे पुनः प्राप्त कर सकते हैं।

कंटेनर लॉग

Usage:  docker logs [OPTIONS] CONTAINER

Fetch the logs of a container

  -f, --follow=false        Follow log output
  --help=false              Print usage
  --since=                  Show logs since timestamp
  -t, --timestamps=false    Show timestamps
  --tail=all                Number of lines to show from the end of the logs

उदाहरण के लिए:

$ docker ps
CONTAINER ID    IMAGE    COMMAND                 CREATED     STATUS       PORTS
ff9716dda6cb    nginx    "nginx -g 'daemon off"  8 days ago  Up 22 hours  443/tcp, 0.0.0.0:8080->80/tcp 

$ docker logs ff9716dda6cb
xx.xx.xx.xx - - [15/Jul/2016:14:03:44 +0000] "GET /index.html HTTP/1.1" 200 511 "https://google.com" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.75 Safari/537.36"
xx.xx.xx.xx - - [15/Jul/2016:14:03:44 +0000] "GET /index.html HTTP/1.1" 200 511 "https://google.com" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.75 Safari/537.36"

डेमन के रूप में चल रहे एक उदाहरण से कनेक्ट करें

इसे प्राप्त करने के दो तरीके हैं, पहला और सबसे अधिक ज्ञात निम्नलिखित है:

docker attach --sig-proxy=false <container>

यह एक शाब्दिक रूप से आपके बैश को कंटेनर बैश से जोड़ता है, जिसका अर्थ है कि यदि आपके पास एक रनिंग स्क्रिप्ट है, तो आप परिणाम देखेंगे।

अलग करने के लिए, बस टाइप करें: सीटीएल-पी सीटीएल-क्यू

लेकिन अगर आपको अधिक अनुकूल तरीके की आवश्यकता है और नए बैश इंस्टेंसेस बनाने में सक्षम हैं, तो बस निम्नलिखित कमांड चलाएँ:

docker exec -it <container> bash

/ कंटेनर से फ़ाइल की प्रतिलिपि बनाना

कंटेनर से होस्ट करने के लिए

docker cp CONTAINER_NAME:PATH_IN_CONTAINER PATH_IN_HOST

मेज़बान से लेकर कंटेनर तक

docker cp PATH_IN_HOST CONTAINER_NAME:PATH_IN_CONTAINER

अगर मैं jess / ट्रांसमिशन का उपयोग करता हूं

https://hub.docker.com/r/jess/transmission/builds/bsn7eqxrkzrhxazcuytbmzp/

, कंटेनर में फ़ाइलें / संचरण / डाउनलोड में हैं

और होस्ट पर मेरी वर्तमान निर्देशिका / घर / $ USER / abc है, के बाद

docker cp transmission_id_or_name:/transmission/download .

मेरे पास कॉपी की गई फाइलें होंगी

/home/$USER/abc/transmission/download

आप नहीं, का उपयोग कर सकते हैं docker cp केवल एक फ़ाइल की प्रतिलिपि, आप निर्देशिका वृक्ष और फ़ाइलों की प्रतिलिपि

निकालें, हटाएं और डॉक करने वाले संस्करणों को साफ करें

जब कंटेनर रोक दिया जाता है तो डॉकटर वॉल्यूम स्वचालित रूप से हटाए नहीं जाते हैं। कंटेनर बंद करने पर संबद्ध वॉल्यूम निकालने के लिए:

docker rm -v <container id or name>

यदि -v ध्वज निर्दिष्ट नहीं है, तो वॉल्यूम 'डिस्क पर वॉल्यूम' के रूप में रहता है। सभी झूलने वाले संस्करणों को हटाने के लिए:

docker volume rm $(docker volume ls -qf dangling=true)

docker volume ls -qf dangling=true फ़िल्टर docker volume ls -qf dangling=true वॉल्यूम संस्करणों की एक सूची लौटाएगा, जिसमें असंबद्ध लोग भी शामिल हैं, जो एक कंटेनर से जुड़े नहीं हैं।

वैकल्पिक रूप से, आप xargs उपयोग कर सकते हैं:

docker volume ls -f dangling=true -q | xargs --no-run-if-empty docker volume rm

निर्यात और आयात डॉक कंटेनर फाइलसिस्टम

डॉकटर कंटेनर की फाइल सिस्टम सामग्री को टैरकबॉल फ़ाइल में सहेजना संभव है। यह अलग-अलग मेजबानों में कंटेनर फाइलसिस्टम को स्थानांतरित करने के लिए एक चुटकी में उपयोगी है, उदाहरण के लिए यदि डेटाबेस कंटेनर में महत्वपूर्ण परिवर्तन हैं और यह अन्यथा उन परिवर्तनों को दोहराने के लिए संभव नहीं है। कृपया ध्यान दें कि कंटेनर के फाइल सिस्टम को निर्यात करने और स्थानांतरित करने के बजाय, docker-compose.yml docker run कमांड या docker-compose.yml फ़ाइल का उपयोग करके एक अद्यतन छवि से पूरी तरह से नया कंटेनर बनाना बेहतर है। डॉकर की शक्ति का एक हिस्सा छवियों और कंटेनरों को बनाने की अपनी घोषणात्मक शैली की लेखापरीक्षा और जवाबदेही है। docker export और docker import का उपयोग करके, यह शक्ति अपने मूल राज्य से कंटेनर के फाइल सिस्टम के अंदर किए गए परिवर्तनों के स्थगन के कारण वश में है।

docker export -o redis.tar redis

उपरोक्त कमांड एक खाली छवि बनाएगा और फिर redis कंटेनर के फाइल सिस्टम को इस खाली छवि में निर्यात करेगा। टारबॉल संग्रह से आयात करने के लिए, उपयोग करें:

docker import ./redis.tar redis-imported:3.0.7

यह कमांड redis-imported:3.0.7 इमेज बनाएगा, जिसमें से कंटेनर बनाए जा सकते हैं। आयात पर परिवर्तन करना संभव है, साथ ही एक प्रतिबद्ध संदेश भी सेट करें:

docker import -c="ENV DEBUG true" -m="enable debug mode" ./redis.tar redis-changed

Dockerfile निर्देशों का उपयोग के लिए उपलब्ध -c कमांड लाइन विकल्प हैं CMD , ENTRYPOINT , ENV , EXPOSE , ONBUILD , USER , VOLUME , WORKDIR



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow