Установка Docker Compose
Docker Compose обычно входит в состав Docker Desktop или может быть установлен отдельно. Ниже описано, как установить плагин CLI Docker Compose в среде Linux.
Установка плагина CLI Docker Compose в Linux
Установите последнюю версию плагина CLI Docker Compose, загрузив его и предоставив права на выполнение. Используйте этот метод для установки Docker Compose, если вы не используете Docker Desktop.
Загрузка и установка плагина Docker Compose
sudo curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Загрузите последнюю версию плагина CLI Docker Compose, предоставьте права на выполнение и поместите его в соответствующий путь.
Проверка версии Docker Compose
docker compose version
Проверьте версию Docker Compose, чтобы убедиться, что установка завершена.
Ключевые команды Docker Compose
Docker Compose используется для управления службами, определенными в файле `docker-compose.yml`. Легко управляйте многоконтейнерными приложениями с помощью приведенных ниже опций.
1. Создание и запуск приложений
2. Остановка и удаление приложений
3. Управление службами
Сгенерированная команда:
Комбинируйте команды.
Описание:
`docker compose` Запускает команду.
Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.
Структура файла `docker-compose.yml`
Docker Compose использует файл `docker-compose.yml` для определения служб, сетей, томов и многого другого. Этот файл написан в формате YAML и четко представляет компоненты приложения и их взаимосвязи.
Базовая структура
Файл `docker-compose.yml` имеет ключи верхнего уровня, такие как `version`, `services`, `networks` и `volumes`. Наиболее важной частью является раздел `services`, который определяет каждый контейнер, из которого состоит приложение.
Пример простого веб-приложения
version: '3.8'
services:
web:
image: nginx:latest
ports:
- '80:80'
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
depends_on:
- api
api:
build: .
ports:
- '3000:3000'
environment:
NODE_ENV: production
volumes:
data_volume:
Пример `docker-compose.yml` для простого приложения, состоящего из веб-сервера Nginx и службы бэкэнда Node.js.
Объяснение ключей
Пояснения к основным настройкам, часто используемым в файле `docker-compose.yml`.
- version: Указывает версию формата файла Compose. Рекомендуется использовать последнюю версию (например, '3.8').
- services: Этот раздел определяет каждую службу-контейнер, из которой состоит приложение.
- image: Указывает имя образа Docker, который будет использоваться для службы (например, `nginx:latest`).
- build: Указывает путь к Dockerfile для сборки образа (например, `.` ).
- ports: Определяет сопоставление портов между хостом и контейнером (например, `- '80:80'`).
- volumes: Определяет монтирование томов для сохранения данных (например, `- ./data:/app/data`).
- environment: Определяет переменные среды, которые будут установлены внутри контейнера.
- depends_on: Определяет зависимости между службами (например, когда служба `db` должна запускаться раньше службы `web`).
- networks: Определяет сети, к которым будет подключаться служба.
Примеры использования
Узнайте, как эффективно управлять многоконтейнерными приложениями с помощью практических примеров использования команд Docker Compose.
Запуск проекта Docker Compose (в фоновом режиме)
docker compose up -d
Считывает файл `docker-compose.yml` в текущем каталоге и запускает все службы в фоновом режиме.
Перезапуск определенной службы
docker compose restart web
Перезапускает только службу 'web', определенную в `docker-compose.yml`.
Просмотр журналов в реальном времени
docker compose logs -f
Потоковый вывод журналов из всех служб в терминал в режиме реального времени для мониторинга поведения приложения.
Остановка приложения и удаление связанных ресурсов
docker compose down -v
Останавливает и удаляет все запущенные контейнеры служб, а также удаляет определенные сети и анонимные тома.
Указание пути к файлу Docker Compose
docker compose -f /path/to/my-app/docker-compose.prod.yml up -d
Выполняет файл Compose с другим именем или расположенный в другом пути вместо стандартного `docker-compose.yml`.