কীভাবে ব্যবহার করবেন
- বাঁ দিকে docker run কমান্ড পেস্ট করুন। শেষে backslash থাকা একাধিক লাইনের কমান্ড কাজ করে; একাধিক কমান্ড আলাদা করতে নতুন লাইন, সেমিকোলন বা && ব্যবহার করুন।
- ডান দিকে Compose ফাইল দেখা যাবে। প্রতিটি কমান্ড --name-এর নাম দিয়ে, আর --name না থাকলে image-এর নাম দিয়ে একটি service হয়ে যায়।
- যা রূপান্তর করা হয়নি, তা দেখতে হলুদ নোটটি দেখুন। তারপর 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"-এর পুরো মানটি অক্ষুণ্ণ থাকে।
গোপনীয়তা
এই টুলটি পুরোপুরি আপনার ব্রাউজারে চলে। আপনার ফাইল ও লেখা আপনার ডিভাইসেই প্রসেস হয় এবং কখনো আমাদের সার্ভারে আপলোড হয় না।