ЛЕКЦІЯ 23

Docker Compose для оркестрації

Рецензія: Dockerfile

План

  • Docker Compose основи
  • Services та networking
  • Практичні приклади

Docker Compose

Docker Compose

Інструмент для визначення й запуску багатоконтейнерних додатків (YAML файл).

docker-compose.yml приклад

version: '3.8'

services:
  web:
    build: .
    ports:
      - "8000:8000"
    depends_on:
      - db
    environment:
      - DB_HOST=db

  db:
    image: postgres:15
    volumes:
      - db_data:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=mydb

volumes:
  db_data:

Service

Service

Контейнер у Compose файлі. Має своє ім'я, конфігурацію, порти.

Основні команди

Networking у Compose

version: '3.8'

services:
  app:
    image: myapp:latest
    networks:
      - mynet
    depends_on:
      - redis

  redis:
    image: redis:7
    networks:
      - mynet

networks:
  mynet:
    driver: bridge

Volumes для персистенції

services:
  db:
    image: postgres:15
    volumes:
      # Named volume
      - db_data:/var/lib/postgresql/data
      # Bind mount
      - ./sql_init:/docker-entrypoint-initdb.d

volumes:
  db_data:

Compose файл секції

Запитання 1

Який файл потрібен для Docker Compose?

  • docker-compose.yml
  • Dockerfile
  • docker.conf
✅ Правильна відповідь: docker-compose.yml

Запитання 2

Як контейнери спілкуються в Compose?

  • По імені сервісу
  • По IP адресі
  • Не можуть
✅ Правильна відповідь: По імені сервісу

Dockerfile + Compose

# Структура проекту
project/
  Dockerfile
  docker-compose.yml
  app.py
  requirements.txt

# Запустити
docker-compose up --build

# Перевірити логи
docker-compose logs -f app

Підсумки

  • Compose для многоконтейнерних додатків
  • YAML файл визначає архітектуру
  • Services, volumes, networks
  • Локальна розробка та production

Курс завершено!

Наступна лекція:

Всі 23 лекції засвоєні. Чудово!

Дякую за увагу! 💾

← Повернутися до списку лекцій