কম্পিউটার টিউটোরিয়াল

Docker কন্টেইনার দিয়ে ডেভেলপমেন্ট ও ডিপ্লয়মেন্ট ত্বরান্বিত করুন

Docker কেন এত জনপ্রিয়?

২০১৩ সালে Docker এসে IT সার্কেলে তুরিল তৈরি করল। কন্টেইনার টেকনোলজি IT অপারেশনের পদ্ধতি পুরোপুরি বদলিয়ে দিচ্ছে। DevOps পাইপলাইনের সবচেয়ে গরম টেকনোলজি আজ Docker।

সমস্যা: আপনি একটি অ্যাপ্লিকেশন ডেভেলপমেন্ট মেশিনে বানালেন, কাজ করলো। কিন্তু QA বা প্রোডাকশন মেশিনে ডিপ্লয় করলে কাজ করল না। কেন? বড় কোম্পানি কন্টেইনার-ভিত্তিক টেকনোলজি ব্যবহার করে সপ্তাহে ২ বিলিয়ন+ কন্টেইনার ডিপ্লয় করে — কারণ এটি কন্টিনিউয়াস ইন্টিগ্রেশন, ডেলিভারি, পোর্টেবিলিটি, স্কেলেবিলিটি নিশ্চিত করে। Docker এই সমস্যাটি সমাধান করে।

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

Docker কী?

Docker একটি ওপেন-সোর্স কন্টেইনার-ভিত্তিক টেকনোলজি। এটি অ্যাপ্লিকেশনকে আন্ডারলাইনিং OS থেকে আলাদা করে, ঠিক Virtual Machine (VM) যেভাবে OS-কে হার্ডওয়্যার থেকে আলাদা করে।

Docker দিয়ে আপনি বিভিন্ন মেশিন/হোস্টে বিভিন্ন অ্যাপ চালিয়ে সফলভাবে কমিউনিকেট করতে পারেন। ইনডাস্ট্রি স্ট্যান্ডার্ড VM ব্যবহার করে, কিন্তু আজ কন্টেইনার গতিমান হচ্ছে এবং ডেভেলপারদের ওয়ার্কলোড কমাচ্ছে।

ওপেন-সোর্স প্রজেক্ট হিসেবে Docker আপনার কোড, কনফিগারেশন, ডিপেন্ডেন্সি একটি ছোট প্যাকেজ — কন্টেইনারে জমা দেয়। একই সার্ভারে একাধিক অ্যাপ্লিকেশন তৈরি, ডিপ্লয়, রান করা যায়।

Virtual Machine (VM) কী?

VM একটি কম্পিউটার সিস্টেমের অনুকরণ করে (RAM, প্রসেসর ইত্যাদি)। ফিজিক্যাল কম্পিউটারের মতো চরিত্র রয়েছে, ভিন্ন OS ও অ্যাপ্লিকেশন চালাতে পারে। হোস্ট সিস্টেমের ফিজিক্যাল রিসোর্স ব্যাকআপ দেয়। VM = Guest, Guest OS = VM-এ চলমান OS, Host System = VM চলমান সিস্টেম।

Docker Container কী?

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

Docker vs Virtual Machines

  • ইজ অফ ইউজ: VM-এ ফুল GUI, টুলগুলো সহজ। Docker-এ CLI, কমপ্লেক্স ইকোসিস্টেম।
  • রিসোর্স: Docker-এ হাইপারভাইজার লাগে না, Docker Engine কাজ করে। VM-এর চেয়ে খুব কম রিসোর্স লাগে।
  • স্পিড ও সাইজ: কন্টেইনার ছোট, হালকা, দ্রুত (মাইক্রোসেকেন্ডে 스타্ট)। VM বুট হতে সময় লাগে।
  • পোর্টেবিলিটি: Docker কন্টেইনার ডেভেলপমেন্ট পাইপলাইনে বেশি পোর্টেবল, টিম মেম্বারের সাথে শেয়ার করা সহজ।
  • এজাইল বেনিফিট: বড় কোম্পানিতে VM-এর ব্যবহার কমেছে Docker-এর গতিপরে। VM একদম বিলুপ্ত হবে না, সাথে সাথে কাজ করবে।

Docker ওয়ার্কফ্লো

Docker Hub (https://hub.docker.com/) — সবচেয়ে विश्वস্ত। ফ্রি Docker ID বানান বা ইমেজ এক্সপ্লোর/পুল করুন।

  • Docker Image: কন্টেইনার লঞ্চ করতে ব্যবহৃত হয়। কাস্টম ইমেজ বানানো যায়। লাইটওয়েট, রিযূজেবল, কম ডিস্ক ইউজ।
  • Docker Container: Docker Hub থেকে ইমেজ পুল করে লঞ্চ। আপনার প্রয়োজন অনুযায়ী ভিন্ন অ্যাপ ভিন্ন কন্টেইনারে।
  • Docker Repositories: ইমেজ ম্যানেজমেন্ট। পাবলিক (কমিউনিটির সাথে শেয়ার) বা প্রাইভেট (কো-ওয়ার্কারের সাথে প্যারালেল ডেভেলপমেন্ট)।
  • Dockerfile: টেক্সট ডকুমেন্ট যেটে কন্টেইনার তৈরির ইনস্ট্রাকশন থাকে। Docker Engine পড়ে কন্টেইনার বানায়।

Docker ব্যবহারের প্রধান সুবিধা

  1. Segregated Development Environment: প্রতিটি কন্টেইনার আইসোলেটেড রিসোর্স পায়। ডিলিট করলে রিসোর্স ফ্রি হয়, রি-অ্যালোকেট হয়। ক্লিন রিমুভাল।
  2. Instant Deployments: OS বুট লাগে না, ডিপ্লয়মেন্ট সেকেন্ডে। হাইলি পোর্টেবল ওয়ার্কলোড, মিনিমাম রিসোর্স।
  3. Rapid Development & Consistent Delivery: ইন্টারন্যাল কনফিগারেশন ও ডিপেন্ডেন্সি Docker হ্যান্ডেল করে। কন্টিনিউয়াস ইন্টিগ্রেশন = কনসিস্টেন্ট ডেলিভারি।
  4. Constant Testing & Version Control: প্রোডাকশন কন্টেইনার টেস্টিং টিম ব্যবহার করতে পারে। ভার্সন কন্ট্রোল — ফাইল চেঞ্জ ট্র্যাক করে, রোলব্যাক সম্ভব।
  5. ডেডিকেটেড হার্ডওয়্যার দরকার নেই: VM-এর হালকা বিকল্প। একই Docker Engine-এ একাধিক কন্টেইনার। স্মল/মিডিয়াম ডিপ্লয়মেন্টের জন্য আদর্শ।
  6. Multi-platform: AWS, GCP, Azure, OpenStack-এ বিল্ট-ইন Docker সাপোর্ট। Linux-ওরিয়েন্টেড ছিল, ২০১৬ থেকে Windows সাপোর্ট।
  7. Cost-efficient: ইনফ্রাস্ট্রাকচার কস্ট কমায়, সার্ভার কস্ট ও ম্যানপাওয়ার কমায়। ROI বাড়ায়।
  8. Security & Reliability: কন্টেইনার আইসোলেটেড, ট্রাফিক ফ্লো কন্ট্রোল। Claire-এর মতো ইমেজ স্ক্যানার সিকিউরিটি বাড়ায়।

ভার্চুয়ালাইজেশন ড্রাইভ কর্পোরেট সেক্টরে বুম করছে। Docker এই ড্রাইভের পথপ্রদর্শক আবিষ্কার।

  1. Phoenix OS দিয়ে PC-তে অ্যান্ড্রয়েড চালানোর পদ্ধতি

  2. সিম্পল ডকার UI দিয়ে গুগল ক্রোমে ডকার ইমেজ ম্যানেজ করা

  3. আইডি ওয়াচডগের সাথে পরিচয় রক্ষা করুন: ১৩ বছরের বিশ্বস্ত সুরক্ষা

  4. পিসিতে অ্যান্ড্রয়েড অ্যাপ চালান: সেরা ক্রোম এক্সটেনশন ও অনলাইন এমুলেটর