সরাসরি প্রধান সামগ্রীতে চলে যান

Docker Cleanup & Optimize Guideline Bangla


🐳 Docker Cleanup & Image Optimization Guide

এই ডকুমেন্টে বর্ণনা করা হয়েছে কিভাবে নিরাপদভাবে (safe way) Docker image, container, network, cache cleanup করা যায় এবং image size optimize করা যায়।


🧹 ১️⃣ Basic Image Cleanup

শুধুমাত্র unused <none> (dangling) image মুছে ফেলবে।

docker image prune -f

📘 ব্যাখ্যা:

  • এই কমান্ড কোনো running container বা tag করা image কে delete করবে না।
  • শুধুমাত্র intermediate, unused image layer গুলো remove করবে।

✅ Safe Command – production environment এ ব্যবহার করা যায়।


🧼 ২️⃣ Full System Cleanup

👉 নিচের কমান্ডে Docker-এর সব unused resource (container, network, image, cache) remove করবে।

docker system prune -a -f

⚠️ WARNING: 🚨 এই কমান্ডে:

  • সব unused image (tag করা হলেও যদি container না থাকে) delete হয়ে যাবে।
  • সব stopped container delete হবে।
  • সব unused network delete হবে।
  • সব build cache delete হবে।

🛑 Production environment এ কখনও চালিও না, শুধুমাত্র local dev/test machine এ।


🔍 ৩️⃣ নির্দিষ্ট Image Delete করা

docker rmi IMAGE_ID

উদাহরণ:

docker rmi 0f0fdca762cc a42d8dd6070a

📘 Tip:

  • delete করার আগে docker ps -a দিয়ে দেখো container ওই image ব্যবহার করছে কিনা।

🪶 ৪️⃣ Build Cache Cleanup

docker builder prune -f

✅ Safe Command এটা শুধু build cache remove করবে, image নয়।


⚙️ ৫️⃣ Image Optimization Tips

| কাজ | উদ্দেশ্য | | --------------------------------- | -------------------------------------------------------------------- | | 🧱 Multistage build | build + runtime stage আলাদা করে ছোট image তৈরি করে | | 📄 .dockerignore ব্যবহার | অপ্রয়োজনীয় ফাইল (node_modules, target, .git ইত্যাদি) বাদ দেয় | | 🧩 Slim base image ব্যবহার | যেমন eclipse-temurin:21-jre বা openjdk:21-jdk-slim | | 🔄 Regular prune চালাও | build শেষে cleanup রাখো | | 🧰 Shared network ব্যবহার করো | একাধিক container এক network এ যুক্ত করো external: true ব্যবহার করে |


🌐 ৬️⃣ Example: Network Sharing

যদি তোমার PostgreSQL আলাদা container হয় এবং Spring Boot app connect করতে চাও 👇

networks:
  postgres-network:
    external: true
    name: postgres_default

services:
  app:
    image: blogger-app-image
    build: .
    networks:
      - postgres-network

🧾 ৭️⃣ Recommended Maintenance Commands

| কাজ | Command | নিরাপত্তা | | --------------------- | --------------------------- | --------------------- | | Dangling image clean | docker image prune -f | ✅ Safe | | Build cache clean | docker builder prune -f | ✅ Safe | | সব কিছু clean | docker system prune -a -f | ⚠️ Risky (Local only) | | Specific image delete | docker rmi <id> | ⚠️ Check before use |


মন্তব্যসমূহ

এই ব্লগটি থেকে জনপ্রিয় পোস্টগুলি

সিজ্জিন (Sijjin) vs ইল্লিয়িন (Illiyin) পার্থক্য Difference

Sijjin (سِجِّين) এবং Illiyin (عِلِّيِّين) —এ দুটি শব্দ কুরআনে এসেছে এবং দুটোই মানুষের আমলনামা সংরক্ষণ সম্পর্কিত স্থানকে নির্দেশ করে। ১. সিজ্জিন (Sijjin) সিজ্জিন হলো পাপীদের (কাফের, মুনাফিক ও দুরাচারীদের) আমলনামা সংরক্ষণের স্থান। এটি সাত তলদেশের নীচে এক কারাগার বা অন্ধকার জগতে অবস্থিত বলে উল্লেখ রয়েছে। সূরা আল-মুতাফফিফীন (৮৩:৭-৯) তে বলা হয়েছে: "كَلَّا إِنَّ كِتَابَ الْفُجَّارِ لَفِي سِجِّينٍ ۝ وَمَا أَدْرَاكَ مَا سِجِّينٌ ۝ كِتَابٌ مَرْقُومٌ" অর্থ: "না, পাপীদের আমলনামা সিজ্জিনে সংরক্ষিত। তুমি কি জানো, সিজ্জিন কী? এটি এক লিখিত দলিল।" সিজ্জিনকে একটি কারাগার, সংকীর্ণ স্থান, বা নিচের স্তরে অবস্থিত এক অন্ধকার দুনিয়া হিসেবে ব্যাখ্যা করা হয়। ২. ইল্লিয়িন (Illiyin) ইল্লিয়িন হলো সৎকর্মশীলদের (মুমিন ও নেককারদের) আমলনামা সংরক্ষণের স্থান । এটি সপ্তম আসমানের ওপরে সংরক্ষিত এক সম্মানিত স্থান। সূরা আল-মুতাফফিফীন (৮৩:১৮-২১) তে বলা হয়েছে: "كَلَّا إِنَّ كِتَابَ الْأَبْرَارِ لَفِي عِلِّيِّينَ ۝ وَمَا أَدْرَاكَ مَا عِلِّيُّونَ ۝ كِتَابٌ مَرْقُومٌ ۝ يَش...

ইমেজ ক্লাসিফিকেশন মডেল তৈরি ও প্রশিক্ষণ

ভূমিকা এই ভিডিওটিতে আমরা দেখবো কিভাবে একটি ইমেজ ক্লাসিফিকেশন মডেলকে প্রশিক্ষণ (Train) দিতে হয়। সহজ কথায়, আমাদের কাছে থাকা ছবিগুলো থেকে কম্পিউটারকে শেখানো যে, কোন ছবিটিতে কোন ব্যক্তি আছেন। এখানে আমরা ডাটাগুলোকে প্রসেস করা, মডেল নির্বাচন, এবং মডেলটি কতটা নির্ভুলভাবে কাজ করছে তা যাচাই করার প্রক্রিয়া শিখবো। ডাটা প্রিপারেশন বা প্রস্তুতি রেফারেন্স: [ 00:00 ] থেকে [ 01:03 ] মডেলকে প্রশিক্ষণ দেওয়ার আগে ডাটা ঠিকঠাক করা খুব জরুরি। ভিডিওতে দেখানো হয়েছে কিভাবে ছবিগুলো থেকে একটি ডিকশনারি বা তালিকার মতো স্ট্রাকচার তৈরি করা হয়েছে। সহজ ব্যাখ্যা: এখানে ইমেজগুলোকে সংখ্যায় রূপান্তর করা হয়েছে। কম্পিউটার সরাসরি ছবি বোঝে না, তাই সেগুলোকে ছোট ছোট ডাটা পয়েন্টের (Array) তালিকা হিসেবে সাজানো হয়েছে। যাতে মডেল বুঝতে পারে একটি ছবিতে কী কী বৈশিষ্ট্য আছে। মডেল নির্বাচন ও প্রশিক্ষণ (SVM) রেফারেন্স: [ 01:03 ] থেকে [ 04:43 ] এখানে Support Vector Machine (SVM) নামক একটি অ্যালগরিদম ব্যবহার করা হয়েছে। এটি সাধারণত ক্লাসিফিকেশনের কাজে খুব ভালো ফলাফল দেয়। পাইপলাইন (Pipeline): ডাটাকে স্কেল (Scale) করার জন্...

জাভা ফিডব্যাক এবং স্ট্রাকচার্ড কনকারেন্সি: বিবর্তনের গল্প

Introduction এই ভিডিওর নির্দিষ্ট অংশে জাভা ল্যাঙ্গুয়েজ আর্কিটেক্ট ব্রায়ান গোয়েটজ (Brian Goetz) আলোচনা করেছেন কীভাবে জাভার নতুন ফিচারগুলো তৈরি হয় এবং এতে সাধারণ ডেভেলপারদের মতামতের গুরুত্ব কতটুকু। বিশেষ করে Structured Concurrency -এর মতো জটিল ফিচারগুলো কেন বারবার 'Preview' অবস্থায় থাকে এবং কীভাবে কমিউনিটির ফিডব্যাক সেই ফিচারগুলোকে আরও নিখুঁত করতে সাহায্য করে, তা এখানে সহজভাবে বোঝানো হয়েছে। ১. ভালো ফিডব্যাক আসলে কী? ভিডিও রেফারেন্স: [ 34:53 ] ব্রায়ান গোয়েটজ বলছেন যে, জাভা টিম যখন কোনো নতুন ফিচারের খসড়া (Draft) বা প্রস্তাব (JEP) প্রকাশ করে, তখন তারা এমন কিছু জানতে চায় যা তারা নিজেরা আগে ভাবেনি। বিস্তারিত: একজন ডেভেলপার হিসেবে আমরা যখন কোনো নতুন ফিচার দেখি, আমাদের প্রথম প্রতিক্রিয়া হয় সেটার Syntax বা লেখার ধরন নিয়ে। কিন্তু ব্রায়ানের মতে, "এই লেখাটা কেন এমন হলো?" বা "এটা কোটলিন বা স্কালা-র মতো কেন নয়?"—এই ধরনের ফিডব্যাক খুব একটা কাজে আসে না। আসল দামী ফিডব্যাক হলো সেইটা, যা নতুন কোনো বাস্তব সমস্যা (Edge Case) তুলে ধরে। আমার চিন্তা: আপনি যদি কেবল দ...