जवाबों:
इसे चलाने का विशिष्ट तरीका इस बात पर निर्भर करता है कि आपने छवि को टैग / नाम दिया है या नहीं।
$ docker images
REPOSITORY TAG ID CREATED SIZE
ubuntu 12.04 8dbd9e392a96 4 months ago 131.5 MB (virtual 131.5 MB)
एक नाम के साथ (आइए उबंटू का उपयोग करें ):
$ docker run -i -t ubuntu:12.04 /bin/bash
एक नाम के बिना, बस आईडी का उपयोग कर:
$ docker run -i -t 8dbd9e392a96 /bin/bash
कृपया अधिक जानकारी के लिए डॉकर रन संदर्भ देखें।
docker ps
कंटेनरों को सूचीबद्ध करता है, छवियों को नहीं। यदि आप एक कंटेनर से एक छवि बनाना चाहते हैं, तो आपको चाहिए docker commit
। आप NAME का उपयोग कमिट में कर सकते हैं (उदाहरण के लिए docker commit _NAME_ _imagename_
)
निम्न चरण करें:
$ docker images
आपको निर्दिष्ट टैग के साथ सभी स्थानीय डॉकर चित्रों की एक सूची मिलेगी।
$ docker run image_name:tag_name
यदि आपने tag_name
यह निर्दिष्ट नहीं किया है कि यह स्वचालित रूप से 'नवीनतम' टैग के साथ एक छवि चलाएगा।
इसके बजाय image_name
, आप एक छवि आईडी (कोई tag_name) भी निर्दिष्ट कर सकते हैं।
डॉकर छवियों को सूचीबद्ध करने के लिए
$ docker images
यदि आपका एप्लिकेशन पोर्ट 80 के साथ चलना चाहता है, और आप स्थानीय स्तर पर बाइंड करने के लिए एक अलग पोर्ट को उजागर कर सकते हैं, तो 8080 कहें:
$ docker run -d --restart=always -p 8080:80 image_name:version
आप अपनी उपलब्ध छवियों का उपयोग करके देख सकते हैं:
docker images
फिर आप अलग मोड में चला सकते हैं ताकि आपका टर्मिनल अभी भी प्रयोग करने योग्य हो। आपके पास एक रिपॉजिटरी नाम (एक टैग के साथ या बिना) या छवि आईडी का उपयोग करके इसे चलाने के लिए कई विकल्प हैं:
docker run -d repository
docker run -d repository:tag
docker run -d image_id
तब आप जांच सकते हैं कि आपका कंटेनर किसका उपयोग कर रहा है
docker ps
docker ps
आपको एक कंटेनर आईडी देता है। आप इसका उपयोग कर सकते हैं या सिर्फ 2/3 पहले पात्रों का उपयोग करके अपने कंटेनर में जा सकते हैं:
docker exec -it container_id /bin/bash
और आप इसका उपयोग करना बंद कर सकते हैं docker stop container_id
और docker rm container_id
।
आप अपने कंटेनर को -rm
तर्कों के साथ भी चला सकते हैं, यदि आप अपने कंटेनर को रोकते हैं तो यह स्वचालित रूप से हटा दिया जाएगा।
इस आदेश के साथ उस छवि का नाम या आईडी प्राप्त करें, जिसे आप चलाना चाहते हैं:
docker images
डॉकर रन कमांड का उपयोग निम्नलिखित तरीके से किया जाता है:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
नीचे मैंने छवि का नाम या आईडी निर्दिष्ट करने से पहले प्रेषण, नाम, प्रकाशन, वॉल्यूम और पुनरारंभ विकल्प शामिल किए हैं:
docker run -d --name container-name -p localhost:80:80 -v $HOME/myContainer/configDir:/myImage/configDir --restart=always image-name
कहाँ पे:
--detach , -d Run container in background and print container ID
--name Assign a name to the container
--publish , -p Publish a container’s port(s) to the host
--volume , -v Bind mount a volume
--restart Restart policy to apply when a container exits
अधिक जानकारी के लिए, कृपया आधिकारिक डोकर रन संदर्भ देखें ।
यहां डॉकर में एक वेबदेव सेवा चलाने के लिए एक उदाहरण है। छवि का नाम मॉरिसजॉब्के / वेबडाव है । आप इसे डॉकर हब से खींच सकते हैं ।
इन छवियों को चलाने के बाद, आप तब WebDAV उदाहरण तक पहुँच सकते हैं http://localhost:8888/webdav
। आंतरिक रूप से फ़ोल्डर /var/webdav
का उपयोग WebDAV रूट के रूप में किया जाता है।
आप इस कंटेनर को निम्न प्रकार से चला सकते हैं:
$ docker run -d -e USERNAME=test -e PASSWORD=test -p 8888:80 morrisjobke/webdav
मुझे भी यही समस्या थी। मैंने अपनी डॉकर छवि को चलाया, और इसने एक विशिष्ट CONTAINER_ID के साथ एक कंटेनर बनाया। मैं एक ही कंटेनर के साथ काम करना चाहता था:
सबसे पहले अपनी डॉकर छवि चलाएँ:
docker run -it -p 8888:8888 -p 6006:6006 -v ~/:/host waleedka/modern-deep-learning
फिर आपके द्वारा बनाए गए सभी कंटेनरों को सूचीबद्ध करें:
sudo docker ps -a
और उस कंटेनर का चयन करें जिसे आप काम करना चाहते हैं (मेरा 167ddd6d7f15 है):
sudo docker start -ai 167ddd6d7f15
चूंकि आपने डॉकरफाइल से एक छवि बनाई है, इसलिए वर्तमान में छवि सक्रिय स्थिति में नहीं है। काम करने के लिए आपको एक कंटेनर के अंदर इस छवि को चलाने की आवश्यकता है।
$ docker images
आदेश बताता है कि कैसे कई छवियों वर्तमान में स्थानीय भंडार में उपलब्ध हैं। तथा
docker ps -a
दिखाता है कि वर्तमान में कितने कंटेनर उपलब्ध हैं, यानी सक्रिय और बाहर किए गए कंटेनरों की सूची।
कंटेनर में छवि को चलाने के दो तरीके हैं:
$ docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
अलग मोड में:
-d=false: Detached mode: Run container in the background, print new container id
इंटरैक्टिव मोड में:
-i :Keep STDIN open even if not attached
यहां डॉकर रन कमांड है
$ docker run image_name:tag_name
डॉकर रन पर अधिक स्पष्टीकरण के लिए, आप डॉकर रन संदर्भ पर जा सकते हैं ।
यह डॉकर को समझने के लिए सबसे अच्छी सामग्री है।
अपने डॉकर होस्ट पर सभी चित्रों की सूची देखने के लिए, दौड़ें:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
apache_snapshot latest 13037686eac3 22 seconds ago 249MB
ubuntu latest 00fd29ccc6f1 3 weeks ago 111MB
अब आप Docker छवि को सहभागी मोड में कंटेनर के रूप में चला सकते हैं:
$ docker run -it apache_snapshot /bin/bash
या यदि आपके पास स्थानीय रूप से कोई चित्र नहीं है, तो डाउनलोड करने के लिए एक छवि के लिए डॉकर हब खोजें:
$ docker search ubuntu
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
ubuntu Ubuntu is a Debian... 6759 [OK]
dorowu/ubuntu-desktop-lxde-vnc Ubuntu with openss... 141 [OK]
rastasheep/ubuntu-sshd Dockerized SSH ser... 114 [OK]
ansible/ubuntu14.04-ansible Ubuntu 14.04 LTS w... 88 [OK]
ubuntu-upstart Upstart is an even... 80 [OK]
डॉक पुल कमांड के साथ रिपॉजिटरी से डॉकर छवि को खींचो:
$ docker pull ubuntu
कंटेनर के रूप में डोकर छवि चलाएँ:
$ docker run -it ubuntu /bin/bash
$ docker images
REPOSITORY TAG IMAGE ID CREATED
jamesmedice/marketplace latest e78c49b5f380 2 days ago
jamesmedice/marketplace v1.0.0 *e78c49b5f380* 2 days ago
$ docker run -p 6001:8585 *e78c49b5f380*
उन लोगों के लिए जो एक ही समस्या थी, लेकिन एक त्रुटि का सामना करना पड़ा
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused "exec: \"bash\": executable file not found in $PATH"
मैंने एक प्रविष्टि बिंदु जोड़ा जो मेरे लिए काम कर रहा था:
docker run -it --entrypoint /bin/sh
बैश के बिना छवियों के लिए।
उदाहरण (स्वीकृत उदाहरण से):
run -it --entrypoint /bin/sh ubuntu:12.04
docker ps -a
यहाँ उपयोगी नहीं हैं?