डोकर ट्यूटोरियल: डोकर भागो कमान की मूल बातें
विषयसूची:
- डॉकर रन कमांड
- अग्रभूमि में कंटेनर चलाएँ
- कंटेनर को अलग मोड में चलाएँ
- बाहर निकलने के बाद कंटेनर निकालें
- कंटेनर का नाम सेट करें
- कंटेनर पोर्ट का प्रकाशन
- शेयरिंग डेटा (बढ़ते वॉल्यूम)
- कंटेनर को इंटरएक्टिव रूप से चलाएं
- निष्कर्ष
डॉकर एक ऐसा मंच है जो आपको पोर्टेबल, आत्मनिर्भर कंटेनरों के रूप में अनुप्रयोगों को विकसित करने, परीक्षण करने और तैनात करने की अनुमति देता है जो लगभग कहीं भी चलते हैं।
docker run
कमांड किसी दिए गए चित्र से एक कंटेनर बनाता है और दिए गए कमांड का उपयोग करके कंटेनर को शुरू करता है। यह पहले कमांड्स में से एक है जिसे आपको डोकर के साथ काम करना शुरू करते समय परिचित होना चाहिए।, हम डॉकटर कंटेनर को चलाने के विभिन्न तरीकों को दिखाने के लिए आधिकारिक नग्नेक्स छवि का उपयोग करेंगे।
डॉकर रन कमांड
docker run
कमांड निम्न रूप लेता है:
docker run IMAGE
जिस छवि से कंटेनर बनाया जाना चाहिए उसका नाम
docker run
कमांड के लिए एकमात्र आवश्यक तर्क है। यदि छवि स्थानीय प्रणाली पर मौजूद नहीं है, तो इसे रजिस्ट्री से खींच लिया जाता है।
यदि कोई कमांड निर्दिष्ट नहीं है, तो डॉकरीफाइल के
CMD
या
ENTRYPOINT
निर्देशों में निर्दिष्ट कमांड को कंटेनर चलाते समय निष्पादित किया जाता है।
संस्करण १.१३ से शुरू होकर, डॉकर सीएलआई का पुनर्गठन किया गया है, और सभी कमांडों को उस ऑब्जेक्ट के तहत समूहीकृत किया गया है जिसके साथ वे बातचीत कर रहे हैं।
चूंकि
run
कमांड कंटेनरों के साथ इंटरैक्ट करता है, इसलिए अब यह
docker container
का एक उपकमांड है। नए कमांड का सिंटैक्स निम्नानुसार है:
docker container run IMAGE
पुराना, प्री 1.13 सिंटैक्स अभी भी समर्थित है। हुड के तहत,
docker run
कमांड एक डॉक टू
docker container run
। उपयोगकर्ताओं को नए कमांड सिंटैक्स का उपयोग करने के लिए प्रोत्साहित किया जाता है।
डॉकर डॉक्यूमेंटेशन पेज पर सभी
docker container run
ऑप्शन की एक सूची मिल सकती है।
अग्रभूमि में कंटेनर चलाएँ
डिफ़ॉल्ट रूप से, जब
docker run
कमांड में कोई विकल्प प्रदान नहीं किया जाता है, तो रूट प्रक्रिया अग्रभूमि में शुरू की जाती है। इसका मतलब है कि मूल प्रक्रिया से मानक इनपुट, आउटपुट और त्रुटि टर्मिनल सत्र से जुड़ी हुई हैं।
docker container run nginx
नगीनक्स प्रक्रिया का आउटपुट आपके टर्मिनल पर प्रदर्शित किया जाएगा। चूंकि, वेबसर्वर के लिए कोई कनेक्शन नहीं हैं, इसलिए टर्मिनल खाली है।
कंटेनर को रोकने के लिए,
CTRL+C
दबाकर चल रहे Nginx प्रक्रिया को समाप्त करें।
कंटेनर को अलग मोड में चलाएँ
टर्मिनल सत्र से बाहर निकलने पर कंटेनर को चालू रखने के लिए, इसे अलग मोड में शुरू करें। यह पृष्ठभूमि में एक लिनक्स प्रक्रिया चलाने के समान है।
एक अलग कंटेनर शुरू करने के लिए
-d
विकल्प का उपयोग करें:
docker container run -d nginx
050e72d8567a3ec1e66370350b0069ab5219614f9701f63fcf02e8c8689f04fa
अलग किए गए कंटेनर रूट प्रक्रिया समाप्त होने पर बंद हो जाएगा।
आप
docker container ls
कमांड का उपयोग करके रनिंग कंटेनरों को सूचीबद्ध कर सकते हैं।
अलग टर्मिनल रूट प्रक्रिया के लिए अपने टर्मिनल को संलग्न करने के लिए,
docker container attach
कमांड का उपयोग करें।
बाहर निकलने के बाद कंटेनर निकालें
डिफ़ॉल्ट रूप से, जब कंटेनर बाहर निकलता है, तो इसकी फाइल सिस्टम मेजबान सिस्टम पर बनी रहती है।
--rm
विकल्प बताता है कि जब यह स्वचालित रूप से बाहर निकलता है तो कंटेनर को हटाने के लिए
--rm
docker run
कमांड:
docker container run --rm nginx
कंटेनर से बाहर निकलने के बाद कंटेनर की फाइल सिस्टम को साफ करने के लिए नगीनक्स छवि सबसे अच्छा उदाहरण नहीं हो सकती है। यह विकल्प आमतौर पर अग्रभूमि कंटेनरों पर उपयोग किया जाता है जो परीक्षण या डेटाबेस बैकअप जैसे अल्पकालिक कार्य करते हैं।
कंटेनर का नाम सेट करें
डॉकर में, प्रत्येक कंटेनर को उसके
UUID
और नाम से पहचाना जाता है। डिफ़ॉल्ट रूप से, यदि स्पष्ट रूप से सेट नहीं किया गया है, तो कंटेनर का नाम स्वचालित रूप से डॉकर डेमन द्वारा उत्पन्न होता है।
कंटेनर को कस्टम नाम निर्दिष्ट करने के लिए
--name
विकल्प का उपयोग करें:
docker container run -d --name my_nginx nginx
कंटेनर का नाम अद्वितीय होना चाहिए। यदि आप एक ही नाम के साथ एक और कंटेनर शुरू करने की कोशिश करते हैं, तो आपको इसके समान एक त्रुटि मिलेगी:
docker: Error response from daemon: Conflict. The container name "/my_nginx" is already in use by container "9…c". You have to remove (or rename) that container to be able to reuse that name.
सभी कंटेनरों को सूचीबद्ध करने और उनके नाम देखने के लिए
docker container ls -a
चलाएँ:
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9d695c1f5ef4 nginx "nginx -g 'daemon of…" 36 seconds ago Up 35 seconds 80/tcp my_nginx
सार्थक नाम डॉकटर नेटवर्क के भीतर कंटेनर को संदर्भित करने के लिए उपयोगी होते हैं या जब डॉक सीएलआई कमांड चलाते हैं।
कंटेनर पोर्ट का प्रकाशन
डिफ़ॉल्ट रूप से, यदि कोई पोर्ट प्रकाशित नहीं होता है, तो कंटेनर में चलने वाली प्रक्रिया केवल कंटेनर के अंदर से ही सुलभ होती है।
प्रकाशन पोर्ट का मतलब है कि कंटेनर पोर्ट को होस्ट मशीन पोर्ट से मैप करना ताकि पोर्ट डॉकर के बाहर सेवाओं के लिए उपलब्ध हों।
पोर्ट का उपयोग करने के लिए
-p
विकल्प निम्नानुसार प्रकाशित करें:
-p host_ip:host_port:container_port/protocol
- यदि कोई
host_ip
निर्दिष्ट नहीं है, तो यह0.0.0.0
डिफॉल्ट करता है। यदि कोईprotocol
निर्दिष्ट नहीं है, तो यह TCP के लिए डिफॉल्ट करता है। कई पोर्ट प्रकाशित करें, कई-p
विकल्पों का उपयोग करें।
होस्ट लोकलहोस्ट इंटरफेस पर 8080 पोर्ट करने के लिए कंटेनर में टीसीपी पोर्ट 80 (नगनेक्स) को मैप करने के लिए, आप दौड़ेंगे:
docker container run --name web_server -d -p 8080:80 nginx
आप सत्यापित कर सकते हैं कि पोर्ट आपके ब्राउज़र में
http://localhost:8080
खोलकर या डॉकर होस्ट पर निम्नलिखित
curl
कमांड चला रहा है:
curl -I
आउटपुट कुछ इस तरह दिखाई देगा:
HTTP/1.1 200 OK Server: nginx/1.17.6 Date: Tue, 26 Nov 2019 22:55:59 GMT Content-Type: text/html Content-Length: 612 Last-Modified: Tue, 19 Nov 2019 12:50:08 GMT Connection: keep-alive ETag: "5dd3e500-264" Accept-Ranges: bytes
शेयरिंग डेटा (बढ़ते वॉल्यूम)
जब एक कंटेनर को रोका जाता है, तो कंटेनर द्वारा उत्पन्न सभी डेटा हटा दिए जाते हैं। डॉकर वॉल्यूम डेटा को स्थिर रखने और इसे कई कंटेनरों में साझा करने का पसंदीदा तरीका है।
वॉल्यूम बनाने और प्रबंधित करने के लिए, निम्न के रूप में
-p
विकल्पों का उपयोग करें:
-v host_src:container_dest:options
-
host_src
होस्ट या किसी नामांकित वॉल्यूम पर फ़ाइल या निर्देशिका के लिए एक पूर्ण पथ हो सकता है।host_src
destcontainer_dest
पर फ़ाइल या निर्देशिका के लिए एक पूर्ण पथ है।)। यदि कोई विकल्प निर्दिष्ट नहीं किया गया है, तो यहrw
को डिफॉल्ट करता है।
यह समझने के लिए कि यह कैसे काम करता है, आइए मेजबान पर एक निर्देशिका बनाएं और इसमें एक
index.html
फ़ाइल डालें:
mkdir public_html
echo "Testing Docker Volumes" > public_html/index.html
इसके बाद, कंटेनर में
public_html
निर्देशिका
/usr/share/nginx/html
माउंट करें:
docker run --name web_server -d -p 8080:80 -v $(pwd)/public_html:/usr/share/nginx/html nginx
public_html
निर्देशिका में पूर्ण पथ निर्दिष्ट करने के बजाय, हम
$(pwd)
कमांड का उपयोग कर रहे हैं, जो वर्तमान कार्यशील निर्देशिका को प्रिंट करता है।
अब, यदि आप अपने ब्राउज़र में
http://localhost:8080
टाइप करते हैं, तो आपको
index.html
फ़ाइल की सामग्री
index.html
चाहिए। आप
curl
उपयोग भी कर सकते हैं:
curl
कंटेनर को इंटरएक्टिव रूप से चलाएं
bash
जैसी संवादात्मक प्रक्रियाओं से निपटने के दौरान, कंटेनर शुरू करने के लिए
-i
और
-t
विकल्पों का उपयोग करें।
-it
विकल्प डॉकटर को टर्मिनल से जुड़े मानक इनपुट को रखने और छद्म ट्टी आवंटित करने के लिए कहता है:
docker container run -it nginx /bin/bash
कंटेनर का बैश शेल टर्मिनल से जुड़ा होगा, और कमांड प्रॉम्प्ट बदल जाएगा:
root@1da70f1937f5:/#
अब, आप कंटेनर के शेल के साथ बातचीत कर सकते हैं और इसके अंदर किसी भी कमांड को चला सकते हैं।
इस उदाहरण में, हमने
docker run
कमांड को एक तर्क के रूप में एक कमांड (
/bin/bash
) प्रदान किया, जिसे डॉकरफाइल में निर्दिष्ट एक के बजाय निष्पादित किया गया था।
निष्कर्ष
डॉकर पैकेजिंग और अनुप्रयोगों को लागू करने और CI / CD, स्वचालन और DevOps का एक अनिवार्य घटक के लिए मानक है।
docker container run
बनाने और चलाने के लिए
docker container run
कमांड का उपयोग किया जाता है।
कमांड लाइन के साथ कमांड लाइन को जब्त करें
कमांड प्रॉम्प्ट, जीयूआई, और शक्तिशाली ले लो कमांड टूलकिट के साथ एक शक्तिशाली बैच भाषा को एकीकृत करें।
DevCon का उपयोग कर कमांड प्रॉम्प्ट के साथ विंडोज ड्राइवर्स प्रबंधित करें: कमांड प्रॉम्प्ट का उपयोग करके विंडोज ड्राइवर्स प्रबंधित करें
विंडोज 8/7 में डिवाइस मैनेजर के विकल्प के रूप में DevCon.exe को डाउनलोड और अक्षम करने के लिए सक्षम करें, अक्षम करें , डिवाइस को पुनरारंभ करें, अपडेट करें, हटाएं, हटाएं।
उदाहरण के साथ लिनक्स में विंग कमांड
GNU Wget वेब से फ़ाइलों को डाउनलोड करने के लिए एक कमांड-लाइन उपयोगिता है। इस ट्यूटोरियल में हम आपको दिखाएंगे कि व्यावहारिक उदाहरणों और सबसे सामान्य Wget विकल्पों के विस्तृत स्पष्टीकरण के माध्यम से Wget कमांड का उपयोग कैसे करें।