কম্পিউটার

ডকারের জন্য পাইথন লাইব্রেরি API


আপনি পাইথন লাইব্রেরি API ব্যবহার করে ডকার অবজেক্ট যেমন কন্টেইনার, ছবি, ক্লাস্টার, ঝাঁক ইত্যাদি অ্যাক্সেস, পরিচালনা এবং ম্যানিপুলেট করতে পারেন। আপনি মোটামুটি কিছু করতে পারেন যা ডকার কমান্ড আপনাকে করতে দেয়। যখন আপনি একটি পাইথন অ্যাপ যেমন জ্যাঙ্গো বা ফ্লাস্ক ব্যবহার করছেন এবং আপনি অ্যাপ্লিকেশনটির জন্য যে পাইথন স্ক্রিপ্টটি ব্যবহার করেন সেটি ব্যবহার করে আপনি আপনার ডকার কন্টেইনারটি বজায় রাখতে চান তখন এটি খুব কার্যকর হয়৷

ডকারের জন্য পাইথন লাইব্রেরি API ব্যবহার করতে, আপনাকে ডকার-পি নামে একটি প্যাকেজ ইনস্টল করতে হবে। আপনি নিম্নলিখিত পিপ কমান্ড ব্যবহার করে তা করতে পারেন। আপনার যদি পাইথন 2 ইন্সটল করা থাকে, তাহলে pip3 এর পরিবর্তে pip দিয়ে দিন।

pip3 install docker−py

এখন, আমরা ডকারের জন্য পাইথন ক্লায়েন্ট লাইব্রেরি API-এর বিভিন্ন বৈশিষ্ট্য একে একে দেখব।

API ব্যবহার করে পাইথন স্ক্রিপ্টের ভিতরে ডকার কমান্ড চালানোর জন্য, আপনাকে প্রথমে ডকার ডেমনের সাথে সংযোগ করতে হবে। আপনি নিম্নলিখিত কমান্ড −

ব্যবহার করে তা করতে পারেন
#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')

উপরের কমান্ডগুলি ব্যবহার করে, আপনি উবুন্টু ইমেজ থেকে একটি ধারক তৈরি করতে পারেন এবং আপনার ইচ্ছামতো ব্যাশ বা অন্য যেকোনো কমান্ড খুলতে কমান্ড প্রদান করতে পারেন।

আপনি নিম্নলিখিত কমান্ড ব্যবহার করে কন্টেইনার আইডি প্রিন্ট করে কন্টেইনার তৈরি করা হয়েছে কিনা তা পরীক্ষা করতে পারেন -

print(myContainer['Id'])

একটি নির্দিষ্ট ধারক পরিদর্শন করতে, আপনি ক্লায়েন্ট অবজেক্টে inspect_container পদ্ধতি ব্যবহার করতে পারেন।

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)

একটি ভলিউম পরিদর্শন করতে, ক্লায়েন্ট অবজেক্টে inspect_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'
  , ])
)

উপরের কমান্ডটি উবুন্টু ইমেজ থেকে একটি কন্টেইনার তৈরি করে এবং এন্ট্রিপয়েন্টটিকে ls হিসাবে নির্দিষ্ট করে এবং আপনার স্থানীয় মেশিনে /var/lib/docker/volumes/myVolume1-এ অবস্থিত একটি ভলিউম আপনার ডকার কন্টেইনারে /usr/src/app/myVolume1 এ মাউন্ট করে।

উপসংহারে, এই নিবন্ধে, আমরা আলোচনা করেছি কিভাবে ডকার অবজেক্ট যেমন ডকার কন্টেইনার, ছবি, ভলিউম একটি পাইথন স্ক্রিপ্ট ব্যবহার করে তৈরি, পরিদর্শন এবং পরিচালনা করতে হয়। আপনি যখন পাইথন টুল ব্যবহার করে একটি অ্যাপ্লিকেশন তৈরি করছেন যেমন জ্যাঙ্গো বা ফ্লাস্ক ব্যবহার করে একটি ওয়েব অ্যাপ্লিকেশন বা tkinter ব্যবহার করে বা অন্য কোনো পাইথন স্ক্রিপ্ট ব্যবহার করে একটি GUI অ্যাপ্লিকেশন তৈরি করার সময় এটি খুবই কার্যকর। আপনি যদি একটি ডকার কন্টেইনার থেকে অ্যাপ্লিকেশন পরিচালনা করতে ইচ্ছুক হন, তাহলে কমান্ড লাইন ইন্টারফেসের মাধ্যমে আলাদাভাবে কমান্ড চালানোর পরিবর্তে ডকার কমান্ড লিখতে পাইথন স্ক্রিপ্ট ব্যবহার করার পরামর্শ দেওয়া হয়।


  1. নির্বাচন সাজানোর জন্য পাইথন প্রোগ্রাম

  2. উইন্ডোজে পাইথন প্রোগ্রামিংয়ের জন্য IDE

  3. পাইথন কোডের জন্য অপ্টিমাইজেশন টিপস?

  4. ডকার ডেস্কটপ - কন্টেইনার পরিচালনার জন্য বন্ধুত্বপূর্ণ ফ্রন্টএন্ড