ডকার ব্যাপকভাবে ব্যবহার করার সময়, বিভিন্ন পাত্রের ব্যবস্থাপনা দ্রুত জটিল হয়ে ওঠে। ডকার কম্পোজ এমন একটি টুল যা আমাদের এই সমস্যাটি কাটিয়ে উঠতে এবং একসাথে একাধিক পাত্রে সহজেই পরিচালনা করতে সহায়তা করে। এই টিউটোরিয়ালে, আমরা এর প্রধান বৈশিষ্ট্য এবং শক্তিশালী প্রক্রিয়াগুলি দেখব।
docker-compose.yml
version: '2'
services:
web:
build:
# ডকারফাইল থেকে তৈরি করুন
context: ./Path
dockerfile: Dockerfile
ports:
- "5000:5000"
volumes:
- .:/code
redis:
image: redisweb:
# ডকারফাইল থেকে তৈরি করুন
build: .
args: # বিল্ড আর্গুমেন্ট যুক্ত করুন
APP_HOME: appকাস্টম ডকারফাইল থেকে তৈরি করুন
build:
context: ./dir
dockerfile: Dockerfile.devইমেজ থেকে তৈরি করুন
image: ubuntu
image: ubuntu:14.04
image: tutum/influxdb
image: example-registry:4000/postgresql
image: a4bc65fdকমান্ড চালানোর আদেশ
command: bundle exec thin -p 3000
command: [bundle, exec, thin, -p, 3000]এন্ট্রিপয়েন্ট ওভাররাইড করুন
entrypoint: /app/start.sh
entrypoint: [php, -d, vendor/bin/phpunit]হোস্টনাম `ডাটাবেস` হিসাবে `db` পরিষেবা উপলব্ধ করে (নির্ভর করে বোঝায়)
links:
- db:database
- redisশুরু করার আগে নিশ্চিত করুন যে `db` জীবিত আছে
depends_on:
- dbএকটি পূর্ব-বিদ্যমান নেটওয়ার্কে যোগদান করুন
networks:
default:
external:
name: frontendডকার সার্ভিস build/rebuild করতে
docker-compose buildডকার সার্ভিস start/stop করতে
docker-compose start
docker-compose stopডকার সার্ভিস পজ করতে ডকার সার্ভিস পুনরায় শুরু করতে
docker-compose pause
docker-compose unpauseডকার সার্ভিসের বর্তমান অবস্থা জানতে
docker-compose psডকার সার্ভিস build/rebuild করতে, অথবা start/restart করতে, অথবা create/recreate করতে
docker-compose upUP এর মাধ্যমে তৈরি কনটেইনার, নেটওয়ার্ক, ভলিউম এবং ইমেজ বন্ধ এবং রিমুভ করতে
docker-compose downডকার কন্টেইনার restart করতে
docker-compose restartনির্দিষ্ট কন্টেইনারে প্রবেশ করতে
docker-compose exec <service_name> bash/shডকার কম্পোজ বিল্ড করা যাতে কোন cache না থাকে
docker-compose build --no-cacheports:
- "3000"
- "8000:80" # host:container
লিঙ্ক করা পরিষেবাগুলিতে পোর্টগুলি প্রকাশ করুন (হোস্ট করার জন্য নয়)
expose: ["3000"]এনভায়রনমেন্ট ভার্স
environment:
RACK_ENV: development
environment:
- RACK_ENV=developmentফাইল থেকে এনভায়রনমেন্টের পরিবর্তন করা
env_file: .env
env_file: [.env, .development.env]এই পরিষেবাটি আরও প্রসারিত করুন
extends:
file: common.yml # optional
service: webappvolumes:
- /var/lib/mysql
- ./_data:/var/lib/mysqlস্বয়ংক্রিয়ভাবে কন্টেইনার পুনরায় চালু করুন সর্বদা, ব্যর্থতা, না (ডিফল্ট) (always, on-failure, no (default))
restart: unless-stoppedমাউন্ট হোস্ট পাথ বা নাম ভলিউম, একটি পরিষেবার উপ-বিকল্প হিসাবে নির্দিষ্ট করা হয়
db:
image: postgres:latest
volumes:
- "/var/run/postgres/postgres.sock:/var/run/postgres/postgres.sock"
- "dbdata:/var/lib/postgresql/data"volumes:
dbdata: