فصل چهارم: Docker Compose

آشنایی با docker-compose.yml

مدیریت چند کانتینر با یک فایل

وقتی برنامه‌ی شما از چند سرویس تشکیل شده (مثلاً وب‌سرور، پایگاه‌داده، کش)، اجرای دستی هر کدام با docker run و ساختن network و volume به‌صورت جداگانه خسته‌کننده و مستعد خطاست. Docker Compose ابزاری است که تعریف کل این سرویس‌ها را در یک فایل YAML واحد جمع می‌کند.

version: "3.9"

services:
  web:
    image: nginx:alpine
    ports:
      - "8080:80"

  cache:
    image: redis:7-alpine

هر بلوک زیر services یک کانتینر را توصیف می‌کند. کلید image ایمیج موردنیاز را مشخص می‌کند و ports پورت میزبان را به پورت داخل کانتینر متصل می‌کند؛ در مثال بالا، پورت ۸۰۸۰ سیستم شما به پورت ۸۰ داخل کانتینر nginx وصل می‌شود.

اجرا و مدیریت

docker compose up -d
docker compose ps
docker compose logs -f web
docker compose down

docker compose up -d همه‌ی سرویس‌های تعریف‌شده را در پس‌زمینه اجرا می‌کند و به‌طور خودکار یک network مشترک برای آن‌ها می‌سازد تا بتوانند با نام سرویس به هم متصل شوند. docker compose down همه‌ی کانتینرها و شبکه را متوقف و حذف می‌کند (ولی volumeها را نگه می‌دارد مگر با فلگ -v). این فایل واحد، مستندسازی زنده‌ای از معماری کل پروژه‌ی شماست.

برای ذخیره‌ی پیشرفت و شرکت در آزمون، وارد شوید — رایگان است.