প্রযুক্তির ভবিষ্যত সম্পর্কে কথা বলার সময়, অনেক অভিজ্ঞ প্রযুক্তিবিদরা জানেন যে ভার্চুয়ালাইজেশন এবং কন্টেইনারাইজেশন সেই পথ। তারা বৃহত্তর অ্যাপ্লিকেশন এবং পরিষেবা সুরক্ষার জন্য অনুমতি দেয় এবং সেগুলি অন্যান্য পরিষেবার মাধ্যমে সহজেই পরিচালিত হয় যা স্ন্যাপশট, টেমপ্লেট এবং আপনি এক-সার্ভার-প্রতি-অ্যাপ্লিকেশন মডেলের চেয়ে বেশি কাস্টমাইজেশনের অনুমতি দেয়। যাইহোক, ভার্চুয়ালাইজেশন এবং কন্টেইনারাইজেশনের সাথে আপনার কীভাবে শুরু করা উচিত তা সর্বদা সম্পূর্ণরূপে পরিষ্কার নয়। আমরা এর আগে অনেকবার Linux, Windows এবং macOS-এ ভার্চুয়ালাইজেশন কভার করেছি, কিন্তু কন্টেইনারাইজেশন একটু ভিন্ন জন্তু হতে থাকে। আমরা এই নিবন্ধে আপনাকে লিনাক্সে পডম্যানের জন্য একটি শিক্ষানবিস গাইড প্রদান করছি, যা কন্টেইনারাইজেশনের জন্য একটি দুর্দান্ত সরঞ্জাম৷
ধারক কি?
কন্টেইনারগুলি মূলত ছোট ভার্চুয়াল মেশিন - কিন্তু শুধুমাত্র অ্যাপ্লিকেশনের জন্য। তারা অনেকগুলি একই ধারণা ব্যবহার করে এবং একই নিরাপত্তা এবং সহজে ব্যবহার করার বৈশিষ্ট্যগুলি বহন করে, তবে সেগুলি অনেক ছোট এবং একটি অ্যাপ্লিকেশনের সহজ ইমেজিং এবং বিতরণের অনুমতি দেয়৷ এটি ফ্ল্যাটপ্যাকস এবং স্ন্যাপগুলির উপর ভিত্তি করে অনেক কিছু। আপনি সমান্তরালগুলি দেখতে শুরু করতে পারেন:একটি প্রোগ্রাম, একাধিক অ্যাপ্লিকেশন যা বিচ্ছিন্ন পরিবেশে চলে৷
পডম্যান কি?
আমরা অনেকেই ডকারের কথা শুনেছি, কনটেইনার ইঞ্জিনের ওজি। পডম্যান হল একটি অনুরূপ কন্টেইনার ইঞ্জিন যা ডকারের সাথে বেশ কয়েকটি মূল পার্থক্যের সাথে খুব অনুরূপ কাঠামো ব্যবহার করে৷
একটি হল পডম্যান ডেমনবিহীন, যেখানে ডকার একটি ডেমনের উপর নির্ভর করে। এর অর্থ হল পডম্যান কন্টেইনারগুলি রুট-স্তরের অনুমতি ছাড়াই কাজ করতে পারে, আরও নিরাপত্তা এবং নমনীয়তার জন্য অনুমতি দেয়। ব্যবহারকারীর স্তরে চলমান একটি কন্টেইনার মানে ব্যবহারকারীরা কেবল তাদের কন্টেইনারগুলি দেখতে পারে এবং অন্য কেউ নয়৷ সহজ আর্কিটেকচারের কারণে পডম্যান সিস্টেম রিসোর্সে হালকা, যা আরও উপভোগ্য অভিজ্ঞতার জন্য তৈরি করে।
ডেমনলেস আর্কিটেকচার এমন কিছুর দিকে নিয়ে যায় যাকে রুটলেস কন্টেইনার বলে। এটি একটি ধারণা যা পূর্ববর্তী পার্থক্যের উপর ভিত্তি করে তৈরি করে কিন্তু নিরাপত্তার উপর ফোকাস করে। যদি কোনও আক্রমণকারী আপনার কন্টেইনারে আপস করে এবং যে কোনও কারণেই পালাতে পরিচালনা করে, তবে তাদের কাছে রুট অনুমতির পরিবর্তে শুধুমাত্র মৌলিক ব্যবহারকারীর অনুমতি রয়েছে। এটি চালিয়ে যাওয়ার জন্য কিছু অতিরিক্ত সেটআপের প্রয়োজন, এবং এই মুহূর্তে কিছু ত্রুটি রয়েছে, তবে এটি এমন কিছু যা দেখার মতো।
পডম্যান ইনস্টল করা হচ্ছে
বেশিরভাগ ডিস্ট্রোসের জন্য, পডম্যান প্রধান সংগ্রহস্থলে রয়েছে, এটি একটি সাধারণ ইনস্টলেশন কমান্ড তৈরি করে:
# 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
আপনি যে পাত্রটি আগে শুরু করেছিলেন তা দেখতে পাবেন। এটি নিশ্চিত করে যে এটি চলছে। যাইহোক, আপনি যদি বিশেষভাবে Apache যে ওয়েবপৃষ্ঠাটি চলছে সেটি দেখতে চান, আপনি নিম্নলিখিত কমান্ডটি চালাবেন:
curl https://0.0.0.0:8080
0.0.0.0
প্রতিস্থাপন করা হচ্ছে আপনি যখন podman ps
চালান তখন যে কোন আইপি ঠিকানা দেখানো হয় আদেশ আপনার একগুচ্ছ বিকৃত 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
ও ব্যবহার করতে পারেন সমস্ত পাত্রে থামাতে পতাকা৷
আপনি হয়তো লক্ষ্য করেছেন যে Podman কন্টেইনার ইমেজগুলির জন্য docker.io এও দেখতে পারে। এর কারণ হল পডম্যান কমান্ড এবং ডকার কমান্ডগুলি মূলত একই - এতটাই যে এটিকে মাঝে মাঝে docker
উপনাম করার পরামর্শ দেওয়া হয় podman
-কে নির্দেশ করুন এই মত:
alias docker='podman'
এর মানে হল যেকোনও সময় আপনি docker
লিখুন , আপনার মেশিন podman
চালাবে যাইহোক আদেশ করুন।
রুটলেস পডম্যান
৷রুটবিহীন কন্টেইনারগুলির জন্য আপনার সিস্টেম সেট আপ করতে, বেশ কিছু সেটআপ করতে হবে, তবে তাদের গিথুব পৃষ্ঠায় দুর্দান্ত ডকুমেন্টেশন রয়েছে৷
আমি আশা করি আপনি পডম্যানে এই প্রাইমারটি উপভোগ করেছেন, একটি দুর্দান্ত ছোট টুল যা আপনাকে আপনার সিস্টেমকে চর্বিহীন, পরিপাটি এবং সুরক্ষিত রাখতে ডেমনবিহীন, রুটবিহীন পাত্রে চালানোর অনুমতি দেবে। আপনি যদি তা করে থাকেন, আমাদের কিছু অন্যান্য কন্টেইনার সামগ্রী পরীক্ষা করে দেখুন, যেমন ChromeOS-এ একটি পাত্রে উবুন্টু চালানোর বিষয়ে আমাদের নির্দেশিকা, অন্য হোস্টে ডকার কন্টেইনার অনুলিপি করা এবং ডকার কন্টেইনার সংস্থানগুলি সীমিত করা।