ডকার-কম্পোজ
ডকার ব্যাপকভাবে ব্যবহার করার সময়, বিভিন্ন পাত্রের ব্যবস্থাপনা দ্রুত জটিল হয়ে ওঠে। ডকার কম্পোজ এমন একটি টুল যা আমাদের এই সমস্যাটি কাটিয়ে উঠতে এবং একসাথে একাধিক পাত্রে সহজেই পরিচালনা করতে সহায়তা করে। এই টিউটোরিয়ালে, আমরা এর প্রধান বৈশিষ্ট্য এবং শক্তিশালী প্রক্রিয়াগুলি দেখব।
docker-compose.yml
version: '2' services: web: build: # ডকারফাইল থেকে তৈরি করুন context: ./Path dockerfile: Dockerfile ports: - "5000:5000" volumes: - .:/code redis: image: redis
web: # ডকারফাইল থেকে তৈরি করুন 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-cache
ports: - "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:
