जब भविष्य के प्रौद्योगिकी के बारे में बात की जाती है, तो कई अनुभवी तकनीकें जानती हैं कि वर्चुअलाइजेशन और कंटेनरीकरण उस रास्ते से बहुत अधिक हैं। वे अधिक एप्लिकेशन और सेवा सुरक्षा की अनुमति देते हैं, और उन्हें अन्य सेवाओं के माध्यम से आसानी से प्रबंधित किया जाता है जो आपको एक-सर्वर-प्रति-एप्लिकेशन मॉडल की तुलना में स्नैपशॉट, टेम्प्लेट और अधिक अनुकूलन की अनुमति देते हैं। हालांकि, यह हमेशा पूरी तरह से स्पष्ट नहीं होता है कि आपको वर्चुअलाइजेशन और कंटेनरीकरण के साथ कैसे शुरुआत करनी चाहिए। हमने पहले भी कई बार लिनक्स, विंडोज और मैकओएस पर वर्चुअलाइजेशन को कवर किया है, लेकिन कंटेनराइजेशन एक अलग जानवर है। हम आपको इस लेख में लिनक्स पर पॉडमैन के लिए एक शुरुआती मार्गदर्शिका प्रदान कर रहे हैं, जो कंटेनरीकरण के लिए एक महान उपकरण है।
कंटेनर क्या हैं?
कंटेनर अनिवार्य रूप से छोटी आभासी मशीनें हैं - लेकिन केवल अनुप्रयोगों के लिए। वे बहुत सारी समान अवधारणाओं का उपयोग करते हैं और समान सुरक्षा और उपयोग में आसान सुविधाओं को लेकर चलते हैं, लेकिन वे बहुत छोटे होते हैं और किसी एप्लिकेशन की आसान इमेजिंग और वितरण की अनुमति देते हैं। यह बहुत कुछ है जिस पर फ़्लैटपैक्स और स्नैप्स आधारित हैं। आप समानताएं देखना शुरू कर सकते हैं:एक प्रोग्राम, कई एप्लिकेशन जो अलग-अलग वातावरण में चलते हैं।
पॉडमैन क्या है?
हम में से कई लोगों ने कंटेनर इंजन के ओजी डॉकर के बारे में सुना है। पॉडमैन एक समान कंटेनर इंजन है जो कुछ प्रमुख अंतरों के साथ डॉकर के समान संरचना का उपयोग करता है।
एक यह है कि पॉडमैन डिमनलेस है, जबकि डॉकर एक डेमॉन पर निर्भर है। इसका मतलब है कि पॉडमैन कंटेनर रूट-स्तरीय अनुमतियों के बिना काम कर सकते हैं, जिससे अधिक सुरक्षा और लचीलेपन की अनुमति मिलती है। उपयोगकर्ता स्तर पर चलने वाले कंटेनर का अर्थ है कि उपयोगकर्ता केवल अपने कंटेनर देख सकते हैं और किसी को नहीं। पॉडमैन सरल वास्तुकला के कारण सिस्टम संसाधनों पर हल्का है, जो अधिक सुखद अनुभव के लिए बनाता है।
डेमॉनलेस आर्किटेक्चर रूटलेस कंटेनर नामक किसी चीज की ओर ले जाता है। यह एक अवधारणा है जो पिछले अंतर पर आधारित है लेकिन सुरक्षा पर केंद्रित है। यदि कोई हमलावर आपके कंटेनर से छेड़छाड़ करता है और किसी भी कारण से भागने का प्रबंधन करता है, तो उसके पास रूट अनुमतियों के बजाय केवल मूल उपयोगकर्ता अनुमतियां होती हैं। इसे जारी रखने के लिए कुछ अतिरिक्त सेटअप की आवश्यकता है, और इस समय कुछ कमियां हैं, लेकिन यह कुछ ऐसा है जो देखने लायक है।
पॉडमैन इंस्टॉल करना
अधिकांश डिस्ट्रोस के लिए, पॉडमैन मुख्य रिपॉजिटरी में है, जिससे यह एक सरल इंस्टॉलेशन कमांड बन जाता है:
# Debian/Ubuntu sudo apt install podman # Fedora/CentOS/Redhat sudo dnf install podman # Arch Linux sudo pacman -S podman # OpenSUSE sudo zypper install podman # Gentoo sudo emerge app-emulation/podman
पॉडमैन का उपयोग करना
पॉडमैन कंटेनर शुरू करने के लिए कमांड सिंटैक्स थोड़ा भ्रमित करने वाला हो सकता है, लेकिन एक बार जब आप इसे लटकाना शुरू कर देंगे, तो आप पैटर्न को पहचानना शुरू कर देंगे। प्रोजेक्ट से एक नमूना कंटेनर है जिसे आप इस कमांड को टर्मिनल में दर्ज करके चला सकते हैं:
podman run -dt -p 8080:8080/tcp -e HTTPD_VAR_RUN=/run/httpd -e HTTPD_MAIN_CONF_D_PATH=/etc/httpd/conf.d \ -e HTTPD_MAIN_CONF_PATH=/etc/httpd/conf \ -e HTTPD_CONTAINER_SCRIPTS_PATH=/usr/share/container-scripts/httpd/ \ registry.fedoraproject.org/f29/httpd /usr/bin/run-httpd
यह सूचीबद्ध रजिस्ट्री से कुछ छवियों को खींचेगा, और एक बार यह हो जाने के बाद, आपको एक लंबी संख्या मिल जाएगी। आप इसे बाद में तब देखेंगे जब आप चल रहे कंटेनरों की जांच करेंगे।
चल रहे पॉडमैन कंटेनरों की जाँच करने के लिए, निम्नलिखित कमांड दर्ज करें:
podman ps
आपको वह कंटेनर दिखाई देगा, जिसे आपने पहले शुरू किया था. यह पुष्टि करता है कि यह चल रहा है। हालाँकि, यदि आप अपाचे द्वारा चलाए जा रहे वेबपेज को विशेष रूप से देखना चाहते हैं, तो आप निम्न कमांड चलाएंगे:
curl https://0.0.0.0:8080
0.0.0.0
. को बदला जा रहा है podman ps
. चलाने पर जो भी IP पता दिखाया जाता है उसके साथ आज्ञा। आपको विकृत HTML का एक गुच्छा मिलना चाहिए, लेकिन यदि आप शीर्ष पर सही देखते हैं, तो आप HTML में एक शीर्षक के लिए वाक्य रचना देखेंगे और जानेंगे कि यह काम कर रहा है।
<title>Test Page for the Apache HTTP Server on Fedora</title>
पॉडमैन इमेज
पॉडमैन के बारे में कुछ अच्छा है जो छवियों का उपयोग कर रहा है। आप httpd
. जैसी अन्य छवियों की खोज कर सकते हैं या अन्य प्रोग्राम जिन्हें चलाने में आपकी रुचि है।
podman search CONTAINERNAME
मैंने vncserver
. खोजा , और यही मुझे मिला है। आप देख सकते हैं कि कई विकल्प हैं, और यह आपकी व्यक्तिगत पसंद पर निर्भर करेगा।
उन छवियों में से एक को पकड़ने के लिए, podman pull
चलाएं आदेश।
podman pull CONTAINERNAME
यह अनुशंसा की जाती है कि आप कंटेनर रजिस्ट्री के पूरी तरह सटीक होने के लिए पूरा यूआरएल खींच लें। उदाहरण के तौर पर, मैं जो कमांड चला रहा हूं वह है:
podman pull docker.io/michaelaboeckler/vncserver
केवल चलाने के बजाय podman pull vncserver
क्योंकि ऐसी छवियां हो सकती हैं जिन्हें मैं नहीं चाहता कि इसके बजाय चुना जाएगा जो मैं चाहता हूं।
आप इस आदेश के साथ अपनी छवियों की जांच भी कर सकते हैं:
podman images
और इस आदेश के साथ कंटेनरों को रोकें:
podman stop -l
-l
ध्वज का अर्थ है कि यह नवीनतम रन कंटेनर को रोक देगा, लेकिन आप -a
. का भी उपयोग कर सकते हैं सभी कंटेनरों को रोकने के लिए झंडा।
आपने देखा होगा कि पॉडमैन कंटेनर इमेज के लिए docker.io भी देख सकता है। ऐसा इसलिए है क्योंकि पॉडमैन कमांड और डॉकर कमांड अनिवार्य रूप से समान हैं - इतना अधिक कि कभी-कभी इसे docker
उपनाम देने की सिफारिश की जाती है podman
. को आदेश दें इस तरह:
alias docker='podman'
इसका मतलब है कि जब भी आप docker
enter दर्ज करते हैं , आपकी मशीन podman
चलाएगी वैसे भी आदेश दें।
रूटलेस पॉडमैन
अपने सिस्टम को रूटलेस कंटेनरों के लिए सेट करने के लिए, कुछ सेटअप से गुजरना पड़ता है, लेकिन उनके जीथब पेज पर बहुत अच्छा दस्तावेज है।
मुझे आशा है कि आपने पॉडमैन पर इस प्राइमर का आनंद लिया है, एक छोटा सा टूल जो आपको अपने सिस्टम को दुबला, साफ और सुरक्षित रखने के लिए डेमॉनलेस, रूटलेस कंटेनर चलाने की अनुमति देगा। यदि आपने किया है, तो हमारी कुछ अन्य कंटेनर सामग्री की जांच करना सुनिश्चित करें, जैसे कि क्रोमओएस में एक कंटेनर में उबंटू चलाने पर हमारे गाइड, डॉकर कंटेनरों को दूसरे होस्ट में कॉपी करना, और डॉकर कंटेनर संसाधनों को सीमित करना।