Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

डॉकर के लिए पायथन लाइब्रेरी एपीआई

आप पाइथन लाइब्रेरी एपीआई का उपयोग करके डॉकटर ऑब्जेक्ट्स जैसे कंटेनर, इमेज, क्लस्टर, स्वार्म इत्यादि तक पहुंच, प्रबंधन और हेरफेर कर सकते हैं। आप बहुत कुछ कर सकते हैं जो docker कमांड आपको करने देता है। यह बहुत काम आता है जब आप django या फ्लास्क जैसे अजगर ऐप का उपयोग कर रहे हैं और आप उसी पायथन स्क्रिप्ट का उपयोग करके अपने डॉकटर कंटेनर को बनाए रखना चाहते हैं जिसका उपयोग आप एप्लिकेशन के लिए करते हैं।

डॉकर के लिए पायथन लाइब्रेरी एपीआई का उपयोग करने के लिए, आपको डॉकर-पी नामक पैकेज स्थापित करने की आवश्यकता है। आप निम्न पाइप कमांड का उपयोग करके ऐसा कर सकते हैं। यदि आपके पास अजगर 2 स्थापित है, तो pip3 को pip से बदलें।

pip3 install docker−py

अब, हम एक-एक करके डॉकटर के लिए पायथन क्लाइंट लाइब्रेरी एपीआई की विभिन्न विशेषताओं को देखेंगे।

एपीआई का उपयोग करके पायथन स्क्रिप्ट के अंदर डॉक कमांड चलाने के लिए, आपको सबसे पहले डॉकर डेमॉन से कनेक्ट करना होगा। आप निम्न आदेशों का उपयोग करके ऐसा कर सकते हैं -

#import client
from docker import client

#create a client object to connect to the daemon
myClient = client.Client(base_url='unix://var/run/docker.sock')

डॉकर डेमॉन से कनेक्ट होने के बाद, आप निम्न कमांड का उपयोग करके सभी कंटेनरों की एक सूची प्राप्त कर सकते हैं। कृपया ध्यान दें कि अनुमति त्रुटियों से बचने के लिए किसी भी आदेश को चलाने से पहले आप रूट उपयोगकर्ता के रूप में लॉग इन हैं।

myClient.containers()

यह आपको उन सभी कंटेनरों की सूची देगा जो आपकी स्थानीय मशीन में उनकी आईडी, संबद्ध छवि और छवि आईडी, लेबल, पोर्ट, स्थिति आदि के साथ मौजूद हैं।

एक नया कंटेनर बनाने के लिए, आप क्लाइंट ऑब्जेक्ट से create_container विधि का उपयोग कर सकते हैं।

myContainer=myClient.create_container(image='ubuntu:latest',command='/bin/bash')

उपरोक्त आदेशों का उपयोग करके, आप ubuntu छवि से एक कंटेनर बना सकते हैं और अपनी इच्छानुसार बैश या किसी अन्य कमांड को खोलने के लिए कमांड प्रदान कर सकते हैं।

आप निम्न कमांड का उपयोग करके कंटेनर की आईडी को प्रिंट करके जांच सकते हैं कि कंटेनर बनाया गया है -

print(myContainer['Id'])

किसी विशेष कंटेनर का निरीक्षण करने के लिए, आप क्लाइंट ऑब्जेक्ट पर निरीक्षण_कंटेनर विधि का उपयोग कर सकते हैं।

myClient.inspect_container('a74688e3cf61ac11fd19bcbca1003465b03b117537adfc826db52c6430c46ba5')

आपको उस कंटेनर का कंटेनर आईडी प्रदान करना होगा जिसे आप तर्क के रूप में अंदर देखना चाहते हैं। आप केवल विशिष्ट क्षेत्रों जैसे पथ या नाम या निर्माण की तारीख का निरीक्षण भी कर सकते हैं।

myClient.inspect_container('a74688e3cf61ac11fd19bcbca1003465b03b117537adfc826db52c6430c46ba5')['Name']

myClient.inspect_container('a74688e3cf61ac11fd19bcbca1003465b03b117537adfc826db52c6430c46ba5')['Created']

myClient.inspect_container('a74688e3cf61ac11fd19bcbca1003465b03b117537adfc826db52c6430c46ba5')['Path']

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

myClient.commit('a74688e3cf61ac11fd19bcbca1003465b03b117537adfc826db52c6430c46ba5', tag='container1')
The above command will return the Id of the container. In order to restart a container, you need to make sure the container still exists. To avoid this, what we can do is to wrap the command inside a try−catch block.
try:
myClient.restart('a74688e3cf61ac11fd19bcbca1003465b03b117537adfc826db52c6430c46ba5')
except Exception as e:
print(e)

सभी छवियों की सूची प्राप्त करने के लिए, आप क्लाइंट ऑब्जेक्ट पर इमेज विधि का उपयोग कर सकते हैं।

images = myClient.images()

यह सभी छवियों की एक सूची लौटाएगा। पहली छवि का विवरण प्रिंट करने के लिए, उपयोग करें -

print(images[0])

छवि का निरीक्षण करने के लिए -

myClient.inspect_image('9140108b62dc87d9b278bb0d4fd6a3e44c2959646eb966b86531306faa81b09b')

आपको तर्क के रूप में छवि आईडी प्रदान करने की आवश्यकता है।

अब हम वॉल्यूम के साथ काम करने के लिए कुछ उपयोगी कमांड देखेंगे। सभी वॉल्यूम की सूची प्राप्त करने के लिए, आप क्लाइंट ऑब्जेक्ट पर वॉल्यूम विधि का उपयोग कर सकते हैं।

volumes = myClient.volumes()

यह सभी संस्करणों की एक सूची लौटाएगा। पहले खंड का विवरण प्रिंट करने के लिए, आप -

. का उपयोग कर सकते हैं
print(volumes['Volumes'][0])

वॉल्यूम बनाने के लिए, आपको वॉल्यूम का नाम, ड्राइवर का नाम और वैकल्पिक रूप से, आप अन्य विकल्पों को भी निर्दिष्ट कर सकते हैं।

volume=myClient.create_volume(name='myVolume1', driver='local', driver_opts={})

यह जांचने के लिए कि वॉल्यूम बनाया गया है या नहीं, इसे प्रिंट करने का प्रयास करें।

print(volume)

वॉल्यूम का निरीक्षण करने के लिए, क्लाइंट ऑब्जेक्ट पर इंस्पेक्ट_वॉल्यूम विधि का उपयोग करें।

myClient.inspect_volume('myVolume1')

वॉल्यूम के साथ एक कंटेनर बनाने के लिए, आप निम्न उदाहरण का उपयोग कर सकते हैं -

mounted_container = myClient.create_container(
   'ubuntu', 'ls', volumes=['/var/lib/docker/volumes/myVolume1'],
   host_config=myClient.create_host_config(binds=[
  '/var/lib/docker/volumes/myVolume1:/usr/src/app/myVolume1'
  , ])
)

उपरोक्त आदेश ubuntu छवि से एक कंटेनर बनाता है और प्रवेश बिंदु को ls के रूप में निर्दिष्ट करता है और आपके स्थानीय मशीन में /var/lib/docker/volumes/myVolume1 पर स्थित वॉल्यूम को आपके docker कंटेनर में /usr/src/app/myVolume1 पर माउंट करता है।

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


  1. विंडोज़ पर पायथन प्रोग्रामिंग के लिए आईडीई

    इस लेख में, हम विंडोज़ के लिए पायथन पर उपलब्ध विभिन्न आईडीई के बारे में जानेंगे। पिचर्म इंटरएक्टिव पायथन कंसोल वेब ढांचे के लिए समर्थन तेज़ अपवर्तन समय कम विकास जुपिटर नोटबुक लगभग हर पायथन मॉड्यूल के साथ संगतता कम जगह और हार्डवेयर आवश्यकताएं इनबिल्ट टर्मिनल और कर्नेल सुविधाएं विज़ेट की एक विस्त

  1. पायथन कोड के लिए अनुकूलन युक्तियाँ?

    हालांकि हम सभी जानते हैं कि अजगर अन्य अनुपालन वाली भाषाओं की तरह तेज या कुशल नहीं है। हालाँकि, कई बड़ी कंपनियाँ हैं जो हमें दिखाती हैं कि पायथन कोड बहुत बड़े कार्यभार को संभाल सकता है जो दर्शाता है कि यह इतना धीमा नहीं है। इस खंड में, हम कुछ युक्तियों को देखने जा रहे हैं जिन्हें ध्यान में रखना चाहिए

  1. डॉकर डेस्कटॉप - कंटेनर प्रबंधन के लिए अनुकूल दृश्य

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