RHEL 8 এ পডম্যান এবং স্কোপিও ব্যবহার করে পাত্রে কীভাবে পরিচালনা করবেন


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

কনটেইনার ইমেজ কি?

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

রেড হ্যাট লিনাক্স দরকারী কনটেইনার সরঞ্জামগুলির একটি সেট সরবরাহ করে যা আপনি লিনাক্স কনটেইনারগুলির সাথে সরাসরি ডকার কমান্ড ব্যবহার করে সরাসরি কাজ করতে পারেন। এর মধ্যে রয়েছে:

  • পোডম্যান - মূল বা রুটলেস মোডে ওসিআই পাত্রে চালনা ও পরিচালনার জন্য এটি একটি ডেমন কম ধারক ইঞ্জিন। পডম্যান ডকারের সাথে সমান এবং ডকার একটি ডিমন বাদে একই কমান্ড অপশন রয়েছে। আপনি ডকারের মতো পডম্যান ব্যবহার করে ধারক চিত্রগুলি টানতে, চালাতে এবং পরিচালনা করতে পারেন। পডম্যান প্রচুর উন্নত বৈশিষ্ট্য নিয়ে আসে, সম্পূর্ণরূপে সিস্টেমের সাথে সংহত করে এবং ব্যবহারকারীর নামস্পেস সমর্থন সরবরাহ করে যার মধ্যে রুট ব্যবহারকারীর প্রয়োজন ছাড়াই চলমান পাত্রে অন্তর্ভুক্ত রয়েছে
  • স্কোপিও: এটি একটি কমান্ড-লাইন সরঞ্জাম যা একটি রেজিস্ট্রি থেকে অন্য রেজিস্ট্রে কনটেইনার চিত্রগুলি অনুলিপি করার জন্য ব্যবহৃত হয়। আপনি কোনও নির্দিষ্ট হোস্টে এবং থেকে চিত্রগুলি অনুলিপি করতে পাশাপাশি অন্য ধারক রেজিস্ট্রি বা পরিবেশে চিত্রগুলি অনুলিপি করতে স্কোপিও ব্যবহার করতে পারেন। চিত্রগুলি অনুলিপি করা ছাড়াও, আপনি এটি বিভিন্ন রেজিস্ট্রার থেকে চিত্রগুলি পরিদর্শন করতে এবং চিত্রগুলি তৈরি করতে ও যাচাই করতে স্বাক্ষর ব্যবহার করতে পারেন
  • বিল্ডাহ: ডকার ফাইল ব্যবহার করে ধারক ওসিআই চিত্র তৈরি ও পরিচালনার জন্য ব্যবহৃত কমান্ড-লাইন সরঞ্জামগুলির এটি একটি সেট।

এই নিবন্ধে, আমরা পডম্যান এবং স্কোপিও ব্যবহার করে পাত্রে পরিচালনার উপর ফোকাস করব।

রিমোট রেজিস্ট্রি থেকে ধারক ইমেজ সন্ধান করা হচ্ছে

পডম্যান অনুসন্ধান কমান্ড আপনাকে ধারক ইমেজগুলির জন্য নির্বাচিত দূরবর্তী রেজিস্ট্রেশনগুলি অনুসন্ধান করতে দেয়। রেজিস্ট্রেশনগুলির ডিফল্ট তালিকাটি/etc/ধারক/ডিরেক্টরিতে অবস্থিত Regferences.conf ফাইলটিতে সংজ্ঞায়িত করা হয়।

নিবন্ধগুলি 3 বিভাগ দ্বারা সংজ্ঞায়িত করা হয়।

  • [regferences.search] - এই বিভাগটি ডিফল্ট রেজিস্ট্রিগুলিকে নির্দিষ্ট করে যা পডম্যান কনটেইনার চিত্রগুলির জন্য অনুসন্ধান করতে পারে। এটি রেজিস্ট্রি.অ্যাক্সেস.ড্র্যাট ডট কম, রেজিস্ট্রি.ডাহাট.ইও এবং ডকার.ইও রেজিস্ট্রেশনগুলিতে অনুরোধ করা চিত্রটি অনুসন্ধান করে

  • [regferences.insecure] - এই বিভাগে এমন নিবন্ধগুলি নির্দিষ্ট করে যা টিএলএস এনক্রিপশন বাস্তবায়ন করে না অর্থাত্ সুরক্ষিত রেজিস্ট্রেশনগুলি। ডিফল্টরূপে, কোনও এন্ট্রি নির্দিষ্ট করা হয় না

  • [রেজিস্ট্রেশন.ব্লক] - এটি আপনার স্থানীয় সিস্টেম থেকে নির্দিষ্ট রেজিস্ট্রিগুলিতে অ্যাক্সেসকে বাধা দেয় বা অস্বীকার করে। ডিফল্টরূপে, কোনও এন্ট্রি নির্দিষ্ট করা হয় না

পডম্যান কমান্ডটি চালিত নিয়মিত (অ-মূল) ব্যবহারকারী হিসাবে, সিস্টেম-ওয়াইড সেটিংসকে ওভাররাইড করতে আপনার নিজের ডিরেক্টরি ডিরেক্টরিতে (OME HOME/.config/ধারক/regferences.conf) আপনার নিজের Regferences.conf ফাইলটি সংজ্ঞায়িত করতে পারেন।

আপনি নিবন্ধগুলি নির্দিষ্ট হিসাবে, নিম্নলিখিত মনে রাখবেন:

  • প্রতিটি রেজিস্ট্রি একক উদ্ধৃতি দ্বারা আবদ্ধ হওয়া উচিত
  • কোনও হোস্টনাম বা আইপি ঠিকানা ব্যবহার করে নিবন্ধগুলি নির্দিষ্ট করা যেতে পারে
  • যদি একাধিক নিবন্ধগুলি নির্দিষ্ট করা থাকে তবে সেগুলি কমা দ্বারা পৃথক করা উচিত
  • যদি কোনও রেজিস্ট্রি কোনও মানহীন বন্দর ব্যবহার করে - কোনওটি পোর্ট টিসিপি সুরক্ষার জন্য 443 এবং সুরক্ষার জন্য 80 বন্দর ব্যবহার করে - পোর্ট নম্বরটি রেজিস্ট্রি নামের পাশাপাশি নির্দিষ্ট করা উচিত উদাঃ রেজিস্ট্রি.এক্সমেল.কম.৫৫566

সিনট্যাক্স ব্যবহার করে ধারক চিত্রের জন্য একটি রেজিস্ট্রি অনুসন্ধান করতে:

# podman search registry/container_image

উদাহরণস্বরূপ, রেজিস্ট্রি.রেড.ইটি রেজিস্ট্রিতে রেডিস চিত্রের সন্ধানের জন্য, কমান্ডটি অনুরোধ করুন:

# podman search registry.redhat.io/redis

একটি মারিয়াডিবি ধারক চিত্র চালানোর জন্য অনুসন্ধান করুন।

# podman search registry.redhat.io/mariadb

একটি ধারক চিত্রের বিস্তৃত বিবরণ পেতে, আপনি যে ফলাফল পেয়েছেন তা থেকে ধারক চিত্রের নামের আগে --no-trunc বিকল্পটি ব্যবহার করুন। উদাহরণস্বরূপ, আমরা মারিয়াডিবি কনটেইনার চিত্রের বিস্তারিত বর্ণনা প্রাপ্ত করার চেষ্টা করব:

# podman search --no-trunc registry.redhat.io/rhel8/mariadb-103

কনটেইনার ইমেজগুলি টানছে

দূরবর্তী রেজিস্ট্রি থেকে ধারক চিত্রগুলি টানা বা পুনরুদ্ধার করার জন্য আপনাকে প্রথমে অন্য কোনও কিছুর আগে প্রমাণীকরণের প্রয়োজন। উদাহরণস্বরূপ, মারিয়াডিবি ধারক চিত্রটি পুনরুদ্ধার করতে প্রথমে রেডহাট রেজিস্ট্রিতে লগ ইন করুন:

# podman login

আপনার ব্যবহারকারী নাম এবং পাসওয়ার্ড সরবরাহ করুন এবং আপনার কীবোর্ডে 'ENTER' টিপুন। যদি সবকিছু ঠিকঠাক হয় তবে আপনার একটি নিশ্চিতকরণ বার্তা পাওয়া উচিত যে রেজিস্ট্রিতে লগইন সফল হয়েছিল।

Login Succeeded!

এখন, আপনি প্রদর্শিত সিনট্যাক্স ব্যবহার করে চিত্রটি টানতে পারেন:

# podman pull <registry>[:<port>]/[<namespace>/]<name>:<tag>

<registry> রিমোট হোস্ট বা রেজিস্ট্রি বোঝায় যা টিসিপি এ ধারক চিত্রগুলির একটি সংগ্রহস্থল সরবরাহ করে। <namespace> এবং <name> সম্মিলিতভাবে রেজিস্ট্রিতে <namespace> ভিত্তিক একটি ধারক চিত্র নির্দিষ্ট করুন। শেষ অবধি, <tag> বিকল্পটি ধারক চিত্রটির সংস্করণ নির্দিষ্ট করে। যদি কোনওটি নির্দিষ্ট না করা হয়, তবে ডিফল্ট ট্যাগ - সর্বশেষ - ব্যবহৃত হয়।

এটি সর্বদা বিশ্বস্ত নিবন্ধগুলি যুক্ত করার পরামর্শ দেওয়া হয়, এগুলি হ'ল এনক্রিপশন সরবরাহ করে এবং বেনাম ব্যবহারকারীদের এলোমেলো নাম দিয়ে অ্যাকাউন্টগুলি স্প্যান করতে দেয় না।

মারিয়াডিবি চিত্রটি টানতে কমান্ডটি চালান:

# podman pull registry.redhat.io/rhel8/mariadb-103

  • এই <<<<<>
  • <namespace> - রেল 8
  • <<>> - মারিয়াডিবি
  • <tag> - 103

পরবর্তী কন্টেইনার চিত্রগুলি টানানোর জন্য, আপনি ইতিমধ্যে প্রমাণীকৃত হওয়ায় আর কোনও লগ ইন করার প্রয়োজন নেই। রেডিস কনটেইনার চিত্রটি টানতে কেবল চালান:

# podman pull registry.redhat.io/rhscl/redis-5-rhel7

ধারক ইমেজ তালিকাভুক্ত

একবার আপনি ছবিগুলি টানা শেষ করার পরে, আপনি আপনার হোস্টে পডম্যান ইমেজ কমান্ডটি চালিয়ে বর্তমানে বিদ্যমান চিত্রগুলি দেখতে পারবেন।

# podman images

কনটেইনার চিত্রগুলি পরিদর্শন করা হচ্ছে

ধারক চালানোর আগে চিত্রটি অনুসন্ধান করা এবং এটি কী করে তা বুঝতে পারা সর্বদা ভাল idea পোডম্যান পরিদর্শন কমান্ড ওএস এবং আর্কিটেকচারের মতো ধারক সম্পর্কে মেটাডেটার সমুদ্র প্রিন্ট করে।

কোনও চিত্র পরিদর্শন করতে ইমেজ আইডি বা সংগ্রহশালা অনুসরণ করে পডম্যান পরিদর্শন কমান্ডটি চালান।

# podman inspect IMAGE ID
OR
# podman inspect REPOSITORY

নীচের উদাহরণে, আমরা মারিয়াডিবি ধারকটি পরিদর্শন করছি।

# podman inspect registry.redhat.io/rhel8/mariadb-103

ধারকটির জন্য নির্দিষ্ট মেটাডেটা টানতে - ফর্ম্যাট বিকল্পটি মেটাডেটা এবং ধারক পরিচয় (চিত্র আইডি বা নাম) অনুসরণ করুন।

নীচের উদাহরণে, আমরা ‘লেবেল’ বিভাগের অধীনে থাকা আরএইচইএল 8 বেস ধারকটির আর্কিটেকচার এবং বিবরণ সম্পর্কে তথ্য উদ্ধার করছি।

# podman inspect --format=’{{.Labels.architecture}}’ image ID
# podman inspect --format=’{{.Labels.description}}’ image ID

অন্য রেজিস্ট্রি থেকে দূরবর্তী চিত্রটি পরিদর্শন করতে, স্কোপিও পরিদর্শন কমান্ডটি ব্যবহার করুন। নীচের উদাহরণে, আমরা ডকারে হোস্ট করা একটি RHEL 8 টি ইমেজ পরিদর্শন করছি।

# skopeo inspect docker://registry.redhat.io/rhel8-beta/rhel-init

ধারক ইমেজ ট্যাগ করা

আপনি যেমন লক্ষ করেছেন, চিত্রের নামগুলি সাধারণত জেনেরিক প্রকৃতির। উদাহরণস্বরূপ, রেডিস চিত্রটি লেবেলযুক্ত:

registry.redhat.io/rhscl/redis-5-rhel7

চিত্রগুলি ট্যাগ করা তাদের কী রয়েছে তা আরও ভাল করে বোঝার জন্য তাদের আরও স্বজ্ঞাত নাম দেয়। পডম্যান ট্যাগ কমান্ড ব্যবহার করে, আপনি একটি চিত্র ট্যাগ তৈরি করতে পারেন যা মূলত একটি চিত্রের নামের একটি উপনাম যাতে বিভিন্ন অংশে গঠিত।

এইগুলো:

registry/username/NAME:tag

উদাহরণস্বরূপ, রেডিস চিত্রটির জেনেরিক নামটি পরিবর্তন করতে যার 646f2730318c আইডি রয়েছে, আমরা কমান্ডটি সম্পাদন করব:

# podman tag 646f2730318c myredis

শেষে একটি ট্যাগ যুক্ত করতে একটি পূর্ণ কোলন সংযোজন করুন তারপরে ট্যাগ নম্বরটি:

# podman tag 646f2730318c myredis:5.0

ট্যাগ নম্বর যুক্ত না করে, এটি কেবল সর্বশেষ বৈশিষ্ট্যটি নির্ধারিত হবে।

কনটেইনার ইমেজ চলছে

একটি ধারক চালাতে, পডম্যান রান কমান্ডটি ব্যবহার করুন। উদাহরণ স্বরূপ:

# podman run image_id

ডেমন পরিষেবা হিসাবে পটভূমিতে নিঃশব্দে একটি ধারক চালানোর জন্য প্রদর্শিত হিসাবে -d বিকল্পটি ব্যবহার করুন।

# podman run -d image_id

উদাহরণস্বরূপ, 646f2730318c আইডি দিয়ে রেডিস চিত্রটি চালাতে, আমরা কমান্ডটি প্রার্থনা করব:

# podman run -d 646f2730318c

আপনি যদি কোনও অপারেটিং সিস্টেম যেমন RHEL 8 বেস চিত্রের উপর ভিত্তি করে একটি ধারক চালাচ্ছেন তবে -it নির্দেশিকা ব্যবহার করে আপনি শেলের অ্যাক্সেস পেতে পারেন। -i বিকল্পটি একটি ইন্টারেক্টিভ সেশন তৈরি করে যখন -t একটি টার্মিনাল সেশন তৈরি করে। --name বিকল্পটি কনটেইনারটির নামটি মাইবাশের সাথে সেট করে যখন বেস ইমেজের ecbc6f53bba0 চিত্র আইডি।

# podman run -it --name=mybash ecbc6f53bba0

এরপরে, আপনি যে কোনও শেল কমান্ড চালাতে পারবেন। নীচের উদাহরণে, আমরা ধারক ইমেজের ওএস সংস্করণটি যাচাই করছি।

# cat /etc/os-release

ধারকটি থেকে বেরিয়ে আসার জন্য, প্রস্থান করার জন্য কেবল আদেশ করুন।

# exit

ধারকটি বের হয়ে গেলে এটি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায়। কনটেইনারটি আবার শুরু করতে, দেখানো হয়েছে হিসাবে -ai পতাকাটি দিয়ে পডম্যান স্টার্ট কমান্ডটি ব্যবহার করুন।

# podman start -ai mybash

আবারও, এটি আপনাকে শেলের অ্যাক্সেস দেয়।

কন্টেইনার ইমেজ চালানোর তালিকা

বর্তমানে চলমান পাত্রে তালিকার জন্য পডম্যান পিএস কমান্ডটি প্রদর্শিত হিসাবে ব্যবহার করুন।

# podman ps

দৌড়ানোর পরে বেরিয়ে আসা সমস্তগুলি সহ সমস্ত ধারক দেখতে, কমান্ডটি ব্যবহার করুন:

# podman ps -a

সিস্টেমড সার্ভিসের আন্ডার স্টার্টে কনটেইনার চিত্রগুলি কনফিগার করুন

এই বিভাগে, আমরা কীভাবে কোনও কনটেইনারটি সিস্টেমড পরিষেবা হিসাবে কোনও আরএইচইএল সিস্টেমে সরাসরি চলার জন্য কনফিগার করা যায় তার উপরে আমরা ফোকাস করি।

প্রথমে আপনার পছন্দসই চিত্রটি পান। এই ক্ষেত্রে, আমরা ডকার হাব থেকে রেডিস চিত্রটি টানছি:

# podman pull docker.io/redis

আপনার সিস্টেমে যদি সেলইনাক্স চলমান থাকে তবে সিস্টেমডযুক্ত পাত্রে চালানোর জন্য আপনার ধারক_ম্যানেজ_সিগ্রুপ বুলেট সক্রিয় করতে হবে।

# setsebool -p container_manage_cgroup on

এরপরে, পটভূমিতে ধারক ইমেজ চালান এবং এটি আপনার পছন্দসই চিত্রের নামতে নির্ধারণ করুন। এই উদাহরণে, আমরা আমাদের চিত্রটির নাম redis_server রেখেছি এবং পোর্টটি 6379 থেকে কনটেইনার থেকে আমাদের RHEL 8 হোস্টে ম্যাপ করেছি

# podman run -d --name redis_server -p 6379:6379 redis

এরপরে, আমরা/etc/systemd/system/ডিরেক্টরিতে redis এর জন্য একটি systemd ইউনিট কনফিগারেশন ফাইল তৈরি করতে যাচ্ছি।

# vim /etc/systemd/system/redis-container.service

ফাইলটিতে নীচের বিষয়বস্তু আটকান।

[Unit]
Description=Redis container

[Service]
Restart=always
ExecStart=/usr/bin/podman start -a redis_server
ExecStop=/usr/bin/podman stop -t 2 redis_server

[Install]
WantedBy=local.target

ফাইলটি সংরক্ষণ করুন এবং প্রস্থান করুন।

এরপরে, বুটআপটি স্বয়ংক্রিয়ভাবে শুরু করতে ধারকটি কনফিগার করুন।

# systemctl enable redis-container.service

এরপরে, ধারকটি শুরু করুন এবং এটির চলমান স্থিতি যাচাই করুন।

# systemctl start redis-container.service
# systemctl status redis-container.service

ধারক চিত্রগুলির জন্য স্থায়ী স্টোরেজ কনফিগার করুন

পাত্রে চলাকালীন, হোস্টের উপর অবিরাম বহিরাগত সঞ্চয়স্থান কনফিগার করা বুদ্ধিমানের কাজ। কনটেইনার ক্রাশ হয়ে গেলে বা ঘটনাক্রমে মুছে ফেলা হলে এটি ব্যাকআপ সরবরাহ করে।

ডেটা অব্যাহত রাখতে, আমরা হোস্টে অবস্থিত একটি ডিরেক্টরি ধারকটির ভিতরে থাকা ডিরেক্টরিতে ম্যাপ করতে যাচ্ছি।

$ podman run --privileged -it -v /var/lib/containers/backup_storage:/mnt registry.redhat.io/ubi8/ubi /bin/bash

যখন সেলইনাক্স প্রয়োগের জন্য সেট করা থাকে তখন - ব্যক্তিগতকৃত বিকল্পটি পাস করা হয়। -v বিকল্পটি বাহ্যিক ভলিউম নির্দিষ্ট করে যা হোস্টে অবস্থিত। এখানে ধারক ভলিউম হল/mnt ডিরেক্টরি।

একবার শেলটি অ্যাক্সেস করার পরে আমরা/mnt ডিরেক্টরিতে নমুনা ফাইল টেস্টিং তৈরি করতে যাচ্ছি।

$ echo "This tests persistent external storage" > /mnt/testing.txt

এরপরে আমরা ধারকটি থেকে প্রস্থান করব এবং হোস্টে থাকা বাহ্যিক স্টোরেজে ফাইলটি উপস্থিত আছে কিনা তা যাচাই করব

# exit
# cat /var/lib/containers/backup_storage/testing.txt

আউটপুট ⇒ এটি স্থায়ী বাহ্যিক স্টোরেজ পরীক্ষা করে।

কনটেইনারগুলি থামানো এবং সরানো

আপনার কন্টেইনারটি চালানোর পরে আপনি পডম্যান স্টপ কমান্ড ব্যবহার করে কন্টেনার-আইডি ব্যবহার করতে পারেন যা আপনি পডম্যান পিএস কমান্ড থেকে পেতে পারেন।

# podman stop container-id

আপনার আর দরকার নেই এমন পাত্রে সরাতে প্রথমে নিশ্চিত হয়ে নিন যে আপনি এটি বন্ধ করেছেন এবং তারপরে পডম্যান আরএম কমান্ডের সাহায্যে ধারক আইডি বা নামটি বিকল্প হিসাবে বেছে নিন inv

# podman rm container-id

এক কমান্ডে এক সাথে একাধিক পাত্রে অপসারণ করতে, একটি স্থান দ্বারা পৃথক করা কন্টেইনার আইডি নির্দিষ্ট করুন।

# podman rm container-id-1 container-id-2 container-id-3

আপনার সমস্ত ধারক পরিষ্কার করতে, কমান্ডটি চালান:

# podman rm -a

একটি চিত্র সরানো হচ্ছে

কোনও চিত্র অপসারণ করতে, প্রথমে নিশ্চিত হয়ে নিন যে চিত্রগুলি থেকে উদ্ভূত সমস্ত পাত্রে পূর্ববর্তী সাব-বিষয়টিতে আলোচনা করা বন্ধ এবং সরানো হয়েছে।

এরপরে, এগিয়ে যান এবং পডম্যান -rmi কমান্ডটি অনুসরণ করুন যা চিত্রের আইডি হিসাবে প্রদর্শিত হবে:

# podman -rmi image-id

উপসংহার

এটি আরএইচএল ৮-এ ধারকগুলি পরিচালনা ও কাজ করার বিষয়ে এই অধ্যায়ে আবদ্ধ হয় We