ডেভেলপারদের জন্য ডকার: ইমেজ, কনটেইনার এবং কম্পোজ

DevOps2026-10-01TryQuickToolBox

একজন ডেভেলপার হিসেবে, আপনি সম্ভবত পরিবেশের অসঙ্গতির কারণে হতাশার সম্মুখীন হয়েছেন: "এটা আমার মেশিনে কাজ করে!" ডকার অ্যাপ্লিকেশনগুলিকে কনটেইনারে প্যাকেজ করে এই সমস্যার সমাধান করে। এই গাইডে ডকার ইমেজ, কনটেইনার এবং কম্পোজ ব্যাখ্যা করা হয়েছে যাতে আপনি ধারাবাহিকভাবে অ্যাপ্লিকেশন তৈরি, শিপ এবং চালাতে পারেন।

ডকার কী?

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

ইমেজ বনাম কনটেইনার

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

ইমেজ নিয়ে কাজ করা

ইমেজগুলি একটি Dockerfile থেকে তৈরি হয়, যা নির্দেশনা সহ একটি টেক্সট ফাইল। এখানে একটি সাধারণ Node.js উদাহরণ:

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]

ইমেজ তৈরি করুন:

docker build -t my-app .

ইমেজ তালিকা করুন: docker images

কনটেইনার চালানো

একটি ইমেজ থেকে কনটেইনার শুরু করুন:

docker run -d -p 3000:3000 --name my-container my-app

এটি কনটেইনারটিকে ডিটাচড মোডে (-d) চালায়, পোর্ট 3000 ম্যাপ করে এবং এটির নাম দেয় my-container।

চলমান কনটেইনার তালিকা করুন: docker ps

একটি কনটেইনার থামান: docker stop my-container

একটি কনটেইনার সরান: docker rm my-container

কেন ডকার কম্পোজ ব্যবহার করবেন?

যখন আপনার অ্যাপ একাধিক সার্ভিসের (ডেটাবেস, ক্যাশে, ইত্যাদি) উপর নির্ভর করে, তখন পৃথক কনটেইনার পরিচালনা করা ক্লান্তিকর হয়ে ওঠে। ডকার কম্পোজ আপনাকে একটি YAML ফাইল ব্যবহার করে মাল্টি-কনটেইনার অ্যাপ্লিকেশন সংজ্ঞায়িত এবং চালানোর সুযোগ দেয়।

কম্পোজ ফাইল উদাহরণ

docker-compose.yml তৈরি করুন:

version: '3.8'
services:
  web:
    build: .
    ports:
      - "3000:3000"
    depends_on:
      - db
  db:
    image: postgres:15
    environment:
      POSTGRES_PASSWORD: example
    volumes:
      - postgres_data:/var/lib/postgresql/data
volumes:
  postgres_data:

সমস্ত সার্ভিস শুরু করুন: docker compose up -d

থামান এবং সরান: docker compose down

ডেভেলপারদের জন্য সেরা অনুশীলন

সাধারণ কমান্ড চিট শিট

কমান্ডবর্ণনা
docker build -t name .Dockerfile থেকে একটি ইমেজ তৈরি করুন
docker run -p host:container imageএকটি কনটেইনার চালান এবং পোর্ট ম্যাপ করুন
docker ps -aসমস্ত কনটেইনার তালিকা করুন
docker exec -it container bashচলমান কনটেইনারের ভিতরে একটি শেল খুলুন
docker compose upকম্পোজ ফাইলে সংজ্ঞায়িত সার্ভিসগুলি শুরু করুন
docker compose logs -fসমস্ত সার্ভিসের লগ অনুসরণ করুন

সাধারণ জিজ্ঞাসা

একটি ইমেজ এবং একটি কনটেইনারের মধ্যে পার্থক্য কী?

একটি ইমেজ হল একটি স্থির টেমপ্লেট; একটি কনটেইনার হল সেই ইমেজের একটি চলমান ইনস্ট্যান্স। আপনি একটি ইমেজ থেকে অনেক কনটেইনার তৈরি করতে পারেন।

আমি কখন ডকার কম্পোজ ব্যবহার করব?

যখন আপনার অ্যাপ্লিকেশনের একাধিক সার্ভিস (যেমন, ওয়েব সার্ভার, ডেটাবেস, ক্যাশে) একসাথে চালানোর প্রয়োজন হয় তখন কম্পোজ ব্যবহার করুন। এটি ডেভেলপমেন্ট এবং টেস্টিংয়ের জন্য অর্কেস্ট্রেশন সহজ করে।

ডকারে আমি কীভাবে ডেটা স্থায়ী করব?

ভলিউম বা বাইন্ড মাউন্ট ব্যবহার করুন। ভলিউমগুলি ডকার দ্বারা পরিচালিত হয় এবং একটি ডেডিকেটেড এলাকায় সংরক্ষিত হয়; বাইন্ড মাউন্টগুলি হোস্ট ডিরেক্টরির সাথে লিঙ্ক করে। উভয়ই কনটেইনার রিস্টার্টের পরেও টিকে থাকে।

আপনার ডকার ওয়ার্কফ্লো সহজ করতে প্রস্তুত? কনটেইনার লগ দ্রুত ডিবাগ করতে আমাদের Nginx Log Analyzer ব্যবহার করে দেখুন।