Dockerfile क्या है | कैसे बना सकते हैं और Dockerfile निर्माण करने के लिए | Dockerfile बेसिक आदेश
विषयसूची:
एक डॉकर छवि डॉकटर कंटेनरों का खाका है जिसमें एप्लिकेशन शामिल है और आपको एप्लिकेशन को चलाने के लिए आवश्यक सभी चीजें हैं। एक कंटेनर एक छवि का रनटाइम उदाहरण है।
इस ट्यूटोरियल में, हम बताएंगे कि डॉकरीफाइल क्या है, एक कैसे बनाएं, और कैसे डॉकरफाइल के साथ डॉकर इमेज का निर्माण किया जाए।
डॉकरफाइल क्या है
Dockerfile एक टेक्स्ट फ़ाइल है जिसमें एक छवि बनाने के लिए कमांड लाइन पर एक उपयोगकर्ता जो सभी कमांड चला सकता है। इसमें डॉकटर द्वारा छवि बनाने के लिए आवश्यक सभी निर्देश शामिल हैं।
डॉकर चित्र फाइलसिस्टम परतों की एक श्रृंखला से बने होते हैं जो छवि के डॉकरफाइल में निर्देशों का प्रतिनिधित्व करते हैं जो एक निष्पादन सॉफ्टवेयर अनुप्रयोग बनाता है।
डॉकर फ़ाइल निम्न रूप लेती है:
# Comment INSTRUCTION arguments
INSTRUCTION
केस-संवेदी नहीं है, लेकिन सम्मेलन अपने नामों के लिए UPPERCASE का उपयोग करना है।
नीचे कुछ सबसे अधिक इस्तेमाल किए जाने वाले डॉकएफ़िल निर्देशों के संक्षिप्त विवरण के साथ सूची दी गई है:
- एआरजी - यह निर्देश आपको उन चरों को परिभाषित करने की अनुमति देता है जिन्हें बिल्ड-टाइम पर पारित किया जा सकता है। आप एक डिफ़ॉल्ट मान भी सेट कर सकते हैं। FROM - एक नई छवि बनाने के लिए आधार छवि। यह निर्देश डॉकफाइल में पहला गैर-टिप्पणी निर्देश होना चाहिए। इस नियम से एकमात्र अपवाद तब है जब आप
FROM
तर्क में एक चर का उपयोग करना चाहते हैं। इस मामले में,FROM
को एक या एक से अधिकARG
निर्देशों से पहले किया जा सकता है। लेबल - विवरण, संस्करण, लेखक..etc जैसी छवि में मेटाडेटा जोड़ने के लिए उपयोग किया जाता है। आप एक से अधिकLABEL
निर्दिष्ट कर सकते हैं, और प्रत्येकLABEL
निर्देश एक कुंजी-मूल्य जोड़ी है। RUN - इस निर्देश में निर्दिष्ट आदेशों का निर्माण प्रक्रिया के दौरान किया जाएगा। प्रत्येकRUN
निर्देश वर्तमान छवि के शीर्ष पर एक नई परत बनाता है। ADD - डॉकटर छवि पर निर्दिष्ट स्रोत से निर्दिष्ट स्रोत से फ़ाइलों और निर्देशिकाओं की प्रतिलिपि बनाने के लिए उपयोग किया जाता है। स्रोत स्थानीय फ़ाइलें या निर्देशिका या URL हो सकता है। यदि स्रोत एक स्थानीय टार संग्रह है, तो यह स्वचालित रूप से डॉकर छवि में अनपैक्ड है। COPY -ADD
समान लेकिन स्रोत केवल एक स्थानीय फ़ाइल या निर्देशिका हो सकती है। ENV - यह निर्देश आपको एक पर्यावरण चर को परिभाषित करने की अनुमति देता है। सीएमडी - एक कमांड निर्दिष्ट करने के लिए उपयोग किया जाता है जिसे कंटेनर चलाते समय निष्पादित किया जाएगा। आप अपने Dockerfile में केवल एकCMD
निर्देश का उपयोग कर सकते हैं। ENTRYPOINT -CMD
समान, यह निर्देश परिभाषित करता है कि कंटेनर चलाते समय किस कमांड को निष्पादित किया जाएगा। कार्य - यह निर्देशRUN
,CMD
,ENTRYPOINT
,COPY
औरADD
निर्देशों के लिए वर्तमान कार्य निर्देशिका सेट करता है। USER - किसी भीRUN
,CMD
,ENTRYPOINT
,COPY
औरADD
निर्देशों का पालन करते समय उपयोग करने के लिए उपयोगकर्ता नाम याUID
सेट करें। वोल्यूम - आपको कंटेनर में एक मेजबान मशीन निर्देशिका को माउंट करने में सक्षम करता है। EXPOSE - उस पोर्ट को निर्दिष्ट करने के लिए उपयोग किया जाता है जिस पर कंटेनर रनटाइम में सुनता है।
छवि में जोड़े जाने से फ़ाइलों और निर्देशिकाओं को बाहर करने के लिए, संदर्भ निर्देशिका में
.dockerignore
फ़ाइल बनाएँ।
.dockerignore
का सिंटैक्स Git की
.gitignore
फ़ाइल के समान है।
एक पूर्ण संदर्भ और डॉकफाइल निर्देशों के विस्तृत विवरण के लिए आधिकारिक डॉकफाइल संदर्भ पृष्ठ देखें।
एक डॉकरफ़ाइल बनाएँ
डॉकर छवियां बनाते समय सबसे आम परिदृश्य एक मौजूदा छवि को रजिस्ट्री से खींचना है (आमतौर पर डॉकर हब से) और उन परिवर्तनों को निर्दिष्ट करें जिन्हें आप आधार छवि पर बनाना चाहते हैं। डोकर छवियों को बनाते समय सबसे अधिक इस्तेमाल की जाने वाली आधार छवि अल्पाइन है क्योंकि यह रैम में चलने के लिए छोटा और अनुकूलित है।
इस उदाहरण में, हम Redis सर्वर के लिए एक डॉकर छवि बनाएंगे। हम आधार छवि के रूप में नवीनतम ubuntu 18.04 का उपयोग करेंगे।
सबसे पहले, एक निर्देशिका बनाएँ जिसमें डॉकफाइल और सभी आवश्यक फाइलें होंगी:
mkdir ~/redis_docker
निर्देशिका पर नेविगेट करें और निम्नलिखित Dockerfile बनाएं:
cd ~/redis_docker
nano Dockerfile
Dockerfile
FROM ubuntu:18.04 RUN apt-get update && \ apt-get install -y redis-server && \ apt-get clean EXPOSE 6379 CMD
आइए डॉकरीफाइल की प्रत्येक पंक्ति का अर्थ समझाते हैं:
- पंक्ति
1
हम आधार छवि को परिभाषित कर रहे हैं।RUN
निर्देश जो पंक्ति3
में शुरू होता है, उपयुक्त सूचकांक को अपडेट करेगा, "रेडिस-सर्वर" पैकेज को स्थापित करेगा और उपयुक्त कैश को साफ करेगा। निर्देश में उपयोग की जाने वाली कमांड उबंटू सर्वर पर रेडिस को स्थापित करने के लिए उपयोग की जाने वाली कमांड के समान है। EXPOSE निर्देश उस पोर्ट को परिभाषित करता है जिस पर रेडिस सर्वर सुनता है। अंतिम पंक्ति में, हम डिफ़ॉल्ट कमांड सेट करने के लिएCMD
निर्देश का उपयोग कर रहे हैं। जब कंटेनर चलेगा तब निष्पादित किया जाएगा।
फ़ाइल को सहेजें और संपादक को बंद करें।
छवि का निर्माण
अगला कदम छवि का निर्माण करना है। ऐसा करने के लिए निर्देशिका Dockerfile स्थित निर्देशिका से निम्न आदेश चलाएँ:
docker build -t linuxize/redis.
विकल्प
-t
छवि नाम निर्दिष्ट करता है और वैकल्पिक रूप से उपयोगकर्ता नाम और टैग 'उपयोगकर्ता नाम / कल्पना: टैग' प्रारूप में होता है।
निर्माण प्रक्रिया का आउटपुट कुछ इस तरह दिखेगा:
Sending build context to Docker daemon 3.584kB Step 1/4: FROM ubuntu:18.04 ---> 7698f282e524 Step 2/4: RUN apt-get update && apt-get install -y gosu redis-server && apt-get clean ---> Running in e80d4dd69263… Removing intermediate container e80d4dd69263 ---> e19fb7653fca Step 3/4: EXPOSE 6379 ---> Running in 8b2a45f457cc Removing intermediate container 8b2a45f457cc ---> 13b92565c201 Step 4/4: CMD ---> Running in a67ec50c7048 Removing intermediate container a67ec50c7048 ---> d8acc14d9b6b Successfully built d8acc14d9b6b Successfully tagged linuxize/redis:latest
निर्माण प्रक्रिया पूरी होने पर नई छवि को छवि सूची में सूचीबद्ध किया जाएगा:
docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE linuxize/redis latest d8acc14d9b6b 4 minutes ago 100MB ubuntu 18.04 7698f282e524 5 days ago 69.9MB
एक कंटेनर चल रहा है
अब जब छवि बनाई जाती है तो आप इसे चलाकर एक कंटेनर चलाते हैं:
docker run -d -p 6379:6379 --name redis linuxize/redis
--name redis
विकल्प
--name redis
को कंटेनर को अलग मोड में चलाने के लिए कहते हैं,
-p 6379:6379
विकल्प पोर्ट 6379 को होस्ट मशीन पर प्रकाशित करेगा और
--name redis
विकल्प कंटेनर नाम निर्दिष्ट करता है। अंतिम तर्क
linuxize/redis
छवि का नाम है, जिसका उपयोग कंटेनर को चलाने के लिए किया जाता है।
जब कंटेनर शुरू होता है, तो सभी चलने वाले कंटेनरों को सूचीबद्ध करने के लिए निम्नलिखित कमांड का उपयोग करें:
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6b7d424cd915 linuxize/redis:v0.0.1 "redis-server '--pro…" 5 minutes ago Up 5 minutes 0.0.0.0:6379->6379/tcp redis
यह सत्यापित करने के लिए कि सब कुछ काम करता है क्योंकि उसे
redis-cli
कंटेनर से कनेक्ट करने के लिए
redis-cli
उपयोग करना चाहिए:
redis-cli ping
रेडिस सर्वर को पोंग के साथ प्रतिक्रिया करनी चाहिए।
निष्कर्ष
इस ट्यूटोरियल में छवियों के निर्माण के लिए Dockerfiles के उपयोग की मूल बातें शामिल हैं। डॉकफाइल्स को लिखने के तरीके के बारे में अधिक जानने के लिए और अनुशंसित सर्वोत्तम प्रथाओं को डॉकरफाइल्स लिखने के लिए सर्वोत्तम अभ्यास देखें।
एलजी ने जर्मनी के कॉनगेड के साथ सौर संयुक्त उद्यम वार्ताएं चालू कीं

एलजी इलेक्ट्रॉनिक्स ने वैश्विक आर्थिक वजह से जर्मनी की सौर ऊर्जा कंपनी कॉनरिस के साथ टाई अप वार्ता समाप्त कर दी है मंदी, यह कहा ...
विंडोज 10 के पेंट 3 डी ऐप के साथ कूल 3 डी छवियां कैसे बनाएं

विंडोज 10 के लिए नया पेंट 3 डी ऐप 30 का आधुनिकीकरण करता है माइक्रोसॉफ्ट पैट उपकरण साल पुराना है। अब नौसिखिया और शुरुआती भी आसानी से विंडोज 10 पर 3 डी छवियां बना सकते हैं।
Bzzt के साथ वेब अनुकूल छवियां बनाएं! विंडोज पीसी के लिए छवि संपादक

अपनी वेबसाइट के लोडिंग समय को बेहतर बनाने के लिए आपको छवियों को अनुकूलित करना चाहिए। फ्रीवेयर Bzzt का प्रयोग करें! छवि संपादक आसानी से वेब अनुकूल छवियों को बनाने के लिए।