🐳 Docker Image ও Container বোঝার জন্য সহজ ব্যাখ্যা (Class এর সাথে তুলনা)
Frontend Developer with 3 years of experience building scalable, SEO-optimized web applications using React.js, Next.js, and modern JavaScript ecosystems. Skilled in performance optimization, advanced state management (Redux, React Query), and driving frontend architecture decisions within Agile development teams.
Docker Image হচ্ছে Docker container রান করার জন্য একটি ব্লুপ্রিন্ট।
Docker Image হচ্ছে একটি executable ফাইল, যার মধ্যে আমাদের অ্যাপ্লিকেশন রান করার জন্য প্রয়োজনীয় সব instruction, configuration এবং dependency আগে থেকেই সংরক্ষিত থাকে।
অর্থাৎ, আমরা কীভাবে একটি container তৈরি করতে চাই — সেটা পুরোপুরি Docker Image-এর মধ্যে define করে রাখা থাকে।
এটি একপ্রকার স্ট্যাটিক স্ন্যাপশট যা বলে দেয়:
অ্যাপ্লিকেশনের কোড কেমন হবে,
কোন কোন লাইব্রেরি বা dependency দরকার,
এবং container-টি কীভাবে রান করবে।
তুলনা করে ভাবলে:
🔹 Docker Image → একটি রান করার গাইডলাইন সহ ব্লুপ্রিন্ট
🔹 Docker Container → সেই Image থেকে তৈরি হওয়া চলমান environment
🎯 Docker Image vs Class
যেমন Class একটি ব্লুপ্রিন্ট যা বলে দেয় অবজেক্ট দেখতে কেমন হবে,
→ ঠিক তেমনি, Docker Image-ও একটি ব্লুপ্রিন্ট।
আমরা একটি ক্লাস দিয়ে অনেকগুলো অবজেক্ট তৈরি করতে পারি।
→ ঠিক তেমনি, একটি Docker Image দিয়ে অনেক Container তৈরি করা যায়।
Class নিজে কোনো রিসোর্স বা মেমোরি ব্যবহার করে না।
→ অবজেক্ট তৈরি হওয়ার পর সেটি রিসোর্স ব্যবহার করে।
একিভাবে, Docker Image নিজে কোনো সিস্টেম রিসোর্স ব্যবহার করে না।
→ যখন Image থেকে Container তৈরি হয়, তখন সেই Container মেমোরি, CPU, ফাইল সিস্টেম ইত্যাদি ব্যবহার করে।
Container এর মধ্যে একটি লোকাল environment থাকে, যেখানে build process চলে, dependencies থাকে, update ও delete করা যায়।
✅ Conclusion:
Container হচ্ছে Docker Image-এর একটি instance, যেমন object হচ্ছে class-এর একটি instance।