Создание файлов compose.yaml

Средний уровень Docker

Mike Metzger

Data Engineering Consultant

YAML

  • Yet Another Markup Language
    • YAML Ain't Markup Language
  • Текстовый файл, отступы важны (как в Python)
  • Используется для конфигурации в различных сценариях разработки
  • Правила могут быть непростыми — главное выравнивать записи, как в примерах
services:
  postgres:
    container_name: postgres
    image: postgres:latest
    ports:
      - "5432:5432"
    restart: always
  pgadmin:
    container_name: pgadmin
    image: dpage/pgadmin4:latest
    ports:
      - "5050:80"
    restart: always
Средний уровень Docker

Основные секции

  • Разные секции отвечают за разные компоненты
  • services: — список контейнеров для запуска
  • networks: — определения сети
  • volumes: — управление монтированием томов
  • configs: — параметры конфигурации без кастомных образов
  • secrets: — управление паролями, токенами, ключами API и т. д.
  • Подробнее — в документации Docker Compose
services:
  ... # Define containers

networks: ... # Define any networking details
volumes: ... # Define storage requirements
configs: ... # Define special config details
secrets: ... # Define passwords / etc
1 https://docs.docker.com/compose/compose-file/
Средний уровень Docker

Секция services

  • Определяет все необходимые ресурсы приложения
  • Главным образом задаёт контейнеры и используемые образы
  • Доступно множество параметров, применяемых к отдельным контейнерам
  • Отступы задаются по мере необходимости
  • Первый подраздел — имя компонента, затем его настройки
Средний уровень Docker

Пример секции services

services:

# Resource name postgres:
# Container name, otherwise random container_name: postgres
# Container image to use image: postgres:latest
# Any port mapping required ports: # Network details - "5432:5432"
# Next resource pgadmin: ...
  • Имя ресурса
  • container_name: — имя контейнера, иначе генерируется случайно
  • image: — используемый образ контейнера
  • ports: — список необходимых маппингов портов
  • Далее — следующие необходимые ресурсы
Средний уровень Docker

Дополнительные замечания

  • Синтаксис config.yaml очень обширен
    • Здесь рассмотрена лишь малая часть возможностей compose.yaml
    • Изучите документацию!
  • Создавать compose.yaml с нуля, как правило, не требуется
1 https://docs.docker.com/compose/compose-file/
Средний уровень Docker

Давайте потренируемся!

Средний уровень Docker

Preparing Video For Download...