Описание вместо набора команд

Когда приложение состоит из нескольких частей, отдельные команды запуска быстро теряют наглядность. В Compose сервисы, сети и хранилища описываются в YAML. Файл можно сохранить рядом с проектом и видеть, что изменилось после очередной правки.

Простой пример для локального знакомства — веб-сервер, доступный только с самого компьютера:

services:
  web:
    image: nginx:stable
    ports:
      - "127.0.0.1:8080:80"
    volumes:
      - ./public:/usr/share/nginx/html:ro

Здесь web — имя сервиса, image — образ, а volumes подключает каталог со страницами в режиме чтения. Это учебный пример: для постоянной установки стоит выбрать конкретную версию образа и заранее определить порядок обновления.

Отдельно подумайте о данных

Пересоздание контейнера — обычная операция. Ценные данные должны находиться в явно выбранном томе или каталоге, который вы включили в резервное копирование. Особенно внимательно отнеситесь к базе данных: копировать её работающие файлы без учёта требований самой базы может быть недостаточно.

Проверьте файл до запуска

docker compose config --quiet

Команда проверяет конфигурацию, но не доказывает, что приложение будет работать: порты могут оказаться заняты, а доступ к файлам — ограничен. Следующий шаг — проверить состояние сервисов и их журналы.

Обновляйте осознанно

Перед заменой образа сохраните рабочую конфигурацию и копию данных. Прочитайте заметки к версии и проверьте, можно ли вернуться назад: новая версия приложения иногда меняет формат базы. Наличие старого контейнера само по себе ещё не означает, что откат готов.

Продолжить чтение: Docker: модель приложения Compose.