Описание вместо набора команд
Когда приложение состоит из нескольких частей, отдельные команды запуска быстро теряют наглядность. В 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.