داکر به عنوان اتوماسیون

Skip to content

این یک متن ترجمه شده ماشینی است که ممکن است حاوی خطا باشد!

Docker استقرار برنامه‌ها را ساده می‌کند. به جای نصب و پیکربندی دستی نرم‌افزار بر روی یک سرور، همه چیز را در فایل‌های پیکربندی تعریف می‌کنید. نتیجه قابل تکرار، قابل حمل و سریع برای راه‌اندازی است.

Docker Compose چیست؟

با Docker Compose می‌توانید چندین سرویس را در یک فایل (docker-compose.yml) تعریف کنید. هر سرویس یک کانتینر با پیکربندی خاص خود است.

services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
  grafana:
    image: grafana/grafana:latest
    ports:
      - "3000:3000"

یک دستور همه چیز را تنظیم می‌کند:

docker compose up -d
# Starter tjenestene i bakgrunnen.
# سرویس‌ها را در پس‌زمینه شروع می‌کند.

به سرور دیگری نیاز به انتقال سرویس دارید؟ فایل را کپی کنید و همان دستور را اجرا کنید. همه چیز یکسان است.

چرا این اتوماسیون است؟

تفاوت را در نظر بگیرید:

تنظیم دستی با Docker Compose
نصب دستی Nginx image: nginx:latest
پیکربندی پورت‌ها ports: "80:80"
نصب دستی Grafana image: grafana/grafana:latest
مستندسازی تمام مراحل همه چیز در فایل .yml مستند شده است
تکرار همه چیز در سرور بعدی docker compose up -d

فایل Docker Compose خود مستندات است. این دقیقاً توصیف می‌کند که کدام سرویس‌ها در حال اجرا هستند، از کدام پورت‌ها استفاده می‌کنند و چگونه پیکربندی شده‌اند.

دستورات مفید Docker

دستور کاری که انجام می‌دهد
docker compose up -d تمام سرویس‌ها را در پس‌زمینه شروع می‌کند
docker compose down تمام کانتینرها را متوقف و حذف می‌کند
docker compose logs -f لاگ‌ها را به‌صورت زنده دنبال می‌کند
docker compose pull آخرین نسخه از تمام ایمیج‌ها را دریافت می‌کند
docker compose restart تمام سرویس‌ها را ری‌استارت می‌کند
docker ps کانتینرهای در حال اجرا را نشان می‌دهد

Volumes: ذخیره داده‌ها خارج از کانتینر

کانتینرها موقتی هستند. اگر یک کانتینر را حذف کنید، تمام محتوای آن از بین می‌رود. برای حفظ داده‌ها از volumes استفاده می‌کنیم:

services:
  database:
    image: postgres:16
    ports:
      - "5432:5432"
    environment:
      POSTGRES_PASSWORD: hemmelig # این رمز عبور پایگاه داده است
    volumes:
      - db-data:/var/lib/postgresql/data

volumes:
  db-data:

در اینجا فایل‌های پایگاه داده در حجمی به نام `db-data` ذخیره می‌شوند. حتی اگر کانتینر را حذف و دوباره ایجاد کنید، داده‌ها همچنان در آنجا خواهند بود.

به‌روزرسانی سرویس‌ها

به‌روزرسانی یک سرویس Docker ساده است:

# دریافت آخرین نسخه
docker compose pull

# راه اندازی مجدد با نسخه جدید
docker compose up -d

مقایسه کنید این را با به‌روزرسانی دستی نرم‌افزار نصب‌شده، که ممکن است مجبور شوید دانلود کنید، پیکربندی کنید و امیدوار باشید چیزی خراب نشود.

Easy وظیفه 1 - راه اندازی Nginx با Docker Compose

یک docker-compose.yml ایجاد کنید که یک وب سرور Nginx را اجرا کند:

  1. یک پوشه جدید ایجاد کنید و فایل docker-compose.yml را ایجاد کنید.
  2. یک سرویس با image: nginx:latest در پورت 80 تعریف کنید.
  3. دستور docker compose up -d را اجرا کنید.
  4. از http://localhost در مرورگر خود بازدید کنید.

Medium وظیفه ۲ - اضافه کردن یک سرویس

docker-compose.yml از وظیفه ۱ را با یک سرویس اضافی گسترش دهید. برای مثال:

همه چیز را با docker compose up -d شروع کنید و بررسی کنید که هر دو سرویس به طور همزمان در حال اجرا هستند.

خلاصه

  • Docker Compose به شما امکان می‌دهد چندین سرویس را در یک فایل تعریف کنید
  • فایل Compose هم پیکربندی و هم مستندسازی است
  • Volumes داده‌ها را خارج از کانتینر ذخیره می‌کنند تا از راه‌اندازی مجدد جان سالم به در ببرند
  • به‌روزرسانی عبارت است از docker compose pull + docker compose up -d
  • Docker انتقال سرویس‌ها بین سرورها را آسان می‌کند