ডকার সফটওয়্যার ইঞ্জিনিয়ারিং উদ্যোগে বিপ্লব লিয়েছে, এটি কেবল সফটওয়্যার শিপিং এবং ডিপ্লয়মেন্টের পদ্ধতিই পরিবর্তন করেছে না, বরং エンজিনিয়াররা তাদের কম্পিউটারে ডেভেলপমেন্ট এনভায়রনমেন্ট সেট আপ করার পরিবর্তন করেও সাহায্য করেছে।
এই গাইড আপনাকে ডকারের সাথে শুরু করার উপায় দেখাবে, উবুন্টু লিনাক্স ২০.০৪ (ফোকাল ফসা) - লেখার সময় উবুন্টুর সর্বশেষ দীর্ঘমেয়াদী সমর্থন (এলটিএস) সংস্করণে ডকার ইনস্টল করে।
ডকারের সুবিধাগুলো
ডকার একটি ওপেন-সোর্স প্ল্যাটফর্ম যা অ্যাপ্লিকেশনগুলিকে স্বতন্ত্র প্যাকেজ হিসেবে, যাকে কন্টেইনার বলা হয়, অটোমেট এবং ডিপ্লয় করার অনুমতি দেয়। ডকার অপারেটিং সিস্টেম ভার্চুয়ালাইজেশন টেকনোলজি ব্যবহার করে, কিন্তু ভার্চুয়াল মেশিনের विपরীতে, এটি সিস্টেম রিসোর্সের উপর খুব কম দবাব দেয়।
ডকারের কিছু প্রধান সুবিধা নিচে দেওয়া হলো:
- তুলনামূলকভাবে সহজে ব্যবহার ও শিখা যায়
- সফটওয়্যার ডিপ্লয় করার জন্য সुस্পষ্ট এবং সহজ পদ্ধতি প্রদান করে
- মাইক্রোসার্ভিস আর্কিটেকচারের সাথে সামঞ্জস্যপূর্ণ
- রিসোর্স ব্যবহারের ক্ষেত্রে খুব হালকা
ডকার সফটওয়্যার রিপোজিটরি সেট আপ করা
ডকার ইনস্টল করার একাধিক পদ্ধতি রয়েছে, এবং এই গাইডে আমরা আপ্ট কমান্ড ইউটিলিটি ব্যবহার করে ডকারের অফিসিয়াল রিপোজিটরি থেকে ডকার ইনস্টল করব। এই পদ্ধতিতে ডকার প্যাকেজটি ভবিষ্যতে সহজে আপগ্রেড করা যায়, এবং এটি ডকার টিমের প্রস্তাবিত পদ্ধতিও।
ইনস্টলেশনের প্রথম ধাপ হল আপনার সফটওয়্যার সোর্সের তালিকায় ডকার সফটওয়্যার রিপোজিটরি যোগ করা। আপনি HTTPS üzerে ডকার রিপোজিটরি ব্যবহার করবেন, এবং তারপর নিচের কমান্ড দিয়ে প্রয়োজনীয় সফটওয়্যার ইনস্টল করবেন।
ভালো অভ্যাস হিসেবে, প্রথমে আপনার উপলব্ধ সফটওয়্যার প্যাকেজের তালিকা আপডেট করুন।
sudo apt update
তারপর, ইনস্টলেশনের জন্য সমস্ত প্রয়োজনীয় ডিপেন্ডেন্সি apt install ব্যবহার করে ডাউনলোড করুন।
sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release
ডকার সফটওয়্যার তার রিপোজিটরি থেকে সফটওয়্যার প্যাকেজ ডাউনলোড করার সময় যোগাযোগ সুরক্ষিত করার জন্য জিএনইউপিজি (GPG) ব্যবহার করে। GPG হল PGP (প্রিটি গুড প্রাইভেসি) এর একটি বাস্তবায়ন স্ট্যান্ডার্ড যা মেসেজ বা ডেটা এনক্রিপ্ট করতে ব্যবহৃত হয়।
আপনার লোকাল কীরিং-এ অফিসিয়াল ডকার GPG কী যোগ করতে নিচের কমান্ডটি ব্যবহার করুন।
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
ডকার তাদের সফটওয়্যার রিপোজিটরিতে মূলত তিনটি রিলিজ ভার্সন রখে: স্ট্যাবল (স্থিতিশীল), টেস্ট (পরীক্ষামূলক), এবং নাইটলি (প্রতিদিনের বিল্ড)। এই গাইডে আমরা ডকারের স্ট্যাবল রিলিজ সংস্করণ নিয়ে আলোচনা করব।
ডকারের স্ট্যাবল রিপোজিটরি রিলিজ সংস্করণ ব্যবহার করতে নিচের কমান্ডটি চালান।
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
দ্রষ্টব্য: উপরের কমান্ডটি ধরে নেয় যে আপনি AMD আর্কিটেকচার ব্যবহার করছেন। যদি আপনি ARM আর্কিটেকচার ব্যবহার করেন, তবে উপরের কমান্ডে arch=amd64 এর জায়গায় arch=arm64 বা আর্ম হার্ড ফ্লোটের জন্য arch=armhf ব্যবহার করুন।
ডকার ইঞ্জিন ইনস্টল করা
এখন ডকার সফটওয়্যার রিপোজিটরি সেট আপ হয়ে গেছে, তাই আপনি ডকার ইঞ্জিন ইনস্টল করতে পারেন, যা ডকার কন্টেইনার ম্যানেজ এবং রান করার মূল অংশ। ডকার ইঞ্জিনের অন্যান্য গুরুত্বপূর্ণ উপাদান হলো ডকার ক্লায়েন্ট, কন্টেইনার্ড, রানসি, এবং ডকার ডিমন।
নিশ্চিত করুন যে আপনি নিচের কমান্ড ব্যবহার করে আপনার প্যাকেজ সোর্স আপডেট করেছেন, কারণ আপনি সম্প্রতি ডকার রিপোজিটরি আপনার সফটওয়্যার সোর্স তালিকায় যোগ করেছেন।
sudo apt update
ডকার ইঞ্জিন ইনস্টল করতে নিচের কমান্ডটি চালান। ডিফল্টভাবে এই কমান্ডটি ডকার ইঞ্জিনের সর্বশেষ স্ট্যাবল ভার্সন ইনস্টল করবে।
sudo apt-get install docker-ce docker-ce-cli containerd.io
যদি আপনি ডকারের নির্দিষ্ট কোনো ভার্সন ইনস্টল করতে চান, তবে প্রথমে নিচের কমান্ড দিয়ে উপলব্ধ ভার্সনগুলোর তালিকা চেক করুন।
apt-cache madison docker-ce
তারপর নির্দিষ্ট ভার্সন ইনস্টল করতে নিচের কমান্ডটি ব্যবহার করুন। উদাহরণস্বরূপ, 5:20.10.6~3-0~ubuntu-focal ইনস্টল করতে:
sudo apt-get install docker-ce=5:20.10.6~3-0~ubuntu-focal docker-ce-cli=5:20.10.6~3-0~ubuntu-focal containerd.io
ইনস্টলেশন নিশ্চিত করা
ডকার সফলভাবে ইনস্টল হয়েছে কিনা চেক করতে নিচের কমান্ডটি চালান, এটি ইনস্টল করা ডকার ইঞ্জিনের ভার্সন নম্বর দেখাবে।
docker -v
উবুন্টু লিনাক্স এবং অধিকাংশ ডেবিয়ান-ভিত্তিক ডিস্ট্রোতে, সিস্টেম বুট হলে ডকার সার্ভিস স্বয়ংক্রিয়ভাবে শুরু হয়।
ইনস্টলেশন টেস্ট করতে hello-world ডকার ইমেজ চালাতে পারেন। যেহেতু ইমেজটি স্থানীয়ভাবে আপনার কম্পিউটারে নেই, সিস্টেম এটি ডকার হাব (কন্টেইনার ইমেজের একটি লাইব্রেরি) থেকে ডাউনলোড করবে। পরের বার ইমেজটি চালালে এটি আপনার পিসিতে থাকা লোকাল কপি ব্যবহার করবে।
sudo docker run hello-world
নন-রুট ইউজার হিসেবে ডকার চালানো
ফিলহাল আপনি শুধু সুপারইউজার হিসেবে ডকার কন্টেইনার चला পারেন, তাই উপরের কমান্ডে sudo ব্যবহার করা হয়েছে। ডকার ডিমন একটি ইউনিক্স সকেটে বাইন্ড করে যা ডিফল্টভাবে রুট ইউজারের स्वামিত্বে থাকে এবং নন-রুট ইউজাররা শুধু sudo এর মাধ্যমে অ্যাক্সেস করতে পারে।
সুপারইউজার না হয়ে ডকার কন্টেইনার এবং অন্যান্য গুরুত্বপূর্ণ কমান্ড চালাতে পারতে, আপনাকে প্রথমে docker নামের একটি ইউজার গ্রুপ তৈরি করতে হবে এবং তারপর আপনার ইউজারকে আপনার মেশিনে ডকার গ্রুপে যোগ করতে হবে। groupadd কমান্ডটি লিনাক্সে ইউজার গ্রুপ ম্যানেজ করার জন্য দায়ী।
sudo groupadd docker
sudo usermod -aG docker $USER
গ্রুপ পরিবর্তনগুলো এক্টিভেট করতে নিচের কমান্ডটি ব্যবহার করুন।
newgrp docker
দ্রষ্টব্য: মনে রাখবেন, নতুন গ্রুপ মেম্বারশিপ সিস্টেম স্বীকৃতি দিতে লগ আউট করে আবার লগ ইন করতে হবে। লগ আউট করতে নিচের কমান্ডটি ব্যবহার করতে পারেন।
gnome-session-quit
কিছু ক্ষেত্রে, আপনি যদি এখনও নন-রুট ইউজার হিসেবে ডকার কমান্ড এক্সিকিউট না कर पান, তবে মেশিন রিস্টার্ট करना প্রয়োজন হতে পারে।
ডকার আনইনস্টল করা
উবুন্টু লিনাক্স থেকে ডকার ইঞ্জিন রিমুভ বা আনইনস্টল করতে শুধু নিচের কমান্ডটি চালান।
sudo apt remove docker docker-engine docker.io containerd runc
যদিও ডকার ইঞ্জিন রিমুভ হয়ে গেছে, ডকারের সাথে সম্পর্কিত অন্যান্য ফাইল যেমন ইমেজ, কন্টেইনার, ভলিউম, বা কাস্টম কনফিগারেশন ফাইলগুলো স্বয়ংক্রিয়ভাবে রিমুভ হয় না। এই ফাইলগুলো rm ইউটিলিটি ব্যবহার করে ডিলিট করতে পারেন।
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
বাস্তবে ডকার
এই গাইড আপনাকে দেখিয়েছে কিভাবে উবুন্টু লিনাক্সে ডকার ইনস্টল এবং কনফিগার করতে হয়। এছাড়াও, ডকার হাব থেকে একটি সিম্পল ডকার ইমেজ ফেচ করে রান করার পদ্ধতিও দেখানো হয়েছে।
ডকার একটি অত্যন্ত বহুমুখী টুল এবং সফটওয়্যার ইঞ্জিনিয়ারিং-এ এর অনেক ইউজ কেস রয়েছে। আপনি যদি সফটওয়্যার ইঞ্জিনিয়ার হন বা ডেভঅপসে কাজ করেন, তবে ডকার আপনার সফটওয়্যার বিভিন্ন এনভায়রনমেন্টে ডিপ্লয় করার পদ্ধতিকে সহজ করবে এবং সফটওয়্যার টেস্টিং ও প্রোটোটাইপিং-এ উপকারী হবে।