মূল বিষয়বস্তুতে যান
ToolMug

সরাতে ↑ ↓, খুলতে Enter, বন্ধ করতে Esc চাপুন।

docker run থেকে Docker Compose

এক বা একাধিক docker run কমান্ড পেস্ট করে সমতুল্য compose.yaml পান। পোর্ট, ভলিউম, এনভায়রনমেন্ট ভেরিয়েবল, নেটওয়ার্ক, রিস্টার্ট পলিসি, মেমরি ও CPU লিমিট, লগিং এবং হেলথ চেক রূপান্তর করা হয়। যেসব ফ্ল্যাগ রূপান্তর করা যায় না, সেগুলোর তালিকা দেওয়া হয়, যাতে আপনি সেগুলো হাতে যোগ করতে পারেন।

আপনার ব্রাউজারে চলে — আপনি যা দেন তার কিছুই আপলোড হয় না

docker run → Docker Compose
docker run
Docker Compose

কীভাবে ব্যবহার করবেন

  1. বাঁ দিকে docker run কমান্ড পেস্ট করুন। শেষে backslash থাকা একাধিক লাইনের কমান্ড কাজ করে; একাধিক কমান্ড আলাদা করতে নতুন লাইন, সেমিকোলন বা && ব্যবহার করুন।
  2. ডান দিকে Compose ফাইল দেখা যাবে। প্রতিটি কমান্ড --name-এর নাম দিয়ে, আর --name না থাকলে image-এর নাম দিয়ে একটি service হয়ে যায়।
  3. যা রূপান্তর করা হয়নি, তা দেখতে হলুদ নোটটি দেখুন। তারপর compose.yaml কপি বা ডাউনলোড করে docker compose up -d চালান।

অপশনগুলোর ব্যাখ্যা

সমর্থিত ফ্ল্যাগ
-p, -v, --mount, -e, --env-file, --name, --restart, --network, -w, -u, -h, --entrypoint, -l, --add-host, --dns, --cap-add/drop, --device, -m, --cpus, --shm-size, --ulimit, --log-driver/--log-opt, --health-*, -i, -t, --privileged, --init, --read-only এবং আরও অনেক।
নামযুক্ত ভলিউম ও নেটওয়ার্ক
নামযুক্ত ভলিউম (যেমন pgdata:/data) শীর্ষ স্তরের volumes-এর অধীনে ঘোষণা করা হয়। কাস্টম network-গুলো external true হিসেবে ঘোষণা করা হয়, অর্থাৎ আগে থেকে থাকা একটি network ব্যবহার করা হয়। host এবং none network network_mode হয়ে যায়।
পোর্ট
পোর্ট ম্যাপিং সবসময় উদ্ধৃত করে লেখা হয়। YAML 1.1-এর নিয়মে 22:22-এর মতো মান base-60 সংখ্যা হিসেবে পড়া হয়, তাই Docker-এর ডকুমেন্টেশনে পোর্টকে string হিসেবে লেখার পরামর্শ দেওয়া হয়েছে।
উপেক্ষিত ফ্ল্যাগ
-d এবং --rm-এর Compose-এ কোনো সমতুল্য নেই, তাই এগুলো বাদ দেওয়া হয়। --gpus-এর মতো অসমর্থিত ফ্ল্যাগ নোটে তালিকাভুক্ত হয়।

উদাহরণ

docker run -d --name web --restart unless-stopped -p 8080:80 \
  -v ./html:/usr/share/nginx/html:ro -e TZ=Asia/Shanghai --memory 512m nginx:1.27

ফলাফল:

services:
  web:
    image: nginx:1.27
    container_name: web
    restart: unless-stopped
    mem_limit: 512m
    ports:
      - "8080:80"
    environment:
      - TZ=Asia/Shanghai
    volumes:
      - ./html:/usr/share/nginx/html:ro

সচরাচর জিজ্ঞাসিত প্রশ্ন

ফাইলে কি version লাইন থাকা দরকার?

না। বর্তমান Docker Compose (v2)-এ আর শীর্ষ স্তরের version ফিল্ড ব্যবহার করা হয় না; থাকলে সতর্কবার্তা দেখিয়ে সেটি উপেক্ষা করা হয়।

আমার environment variable-এ থাকা পাসওয়ার্ড কি আপলোড হয়?

না। পার্সিং ও রূপান্তর আপনার ব্রাউজারেই চলে এবং কিছুই সার্ভারে পাঠানো হয় না।

উদ্ধৃত arguments কি এটি সামলাতে পারে?

হ্যাঁ। একক উদ্ধৃতি, দ্বৈত উদ্ধৃতি এবং backslash escape shell-এর নিয়ম মেনে কাজ করে, তাই -e "MSG=hello world"-এর পুরো মানটি অক্ষুণ্ণ থাকে।

গোপনীয়তা

এই টুলটি পুরোপুরি আপনার ব্রাউজারে চলে। আপনার ফাইল ও লেখা আপনার ডিভাইসেই প্রসেস হয় এবং কখনো আমাদের সার্ভারে আপলোড হয় না।

সম্পর্কিত টুল