ডকার ব্যাপকভাবে ব্যবহার করার সময়, বিভিন্ন পাত্রের ব্যবস্থাপনা দ্রুত জটিল হয়ে ওঠে। ডকার কম্পোজ এমন একটি টুল যা আমাদের এই সমস্যাটি কাটিয়ে উঠতে এবং একসাথে একাধিক পাত্রে সহজেই পরিচালনা করতে সহায়তা করে। এই টিউটোরিয়ালে, আমরা এর প্রধান বৈশিষ্ট্য এবং শক্তিশালী প্রক্রিয়াগুলি দেখব।
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: frontenddocker-compose start
docker-compose stopdocker-compose pause
docker-compose unpausedocker-compose ps
docker-compose up
docker-compose downports:
- "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: