Docker Compose - это инструмент для управления многоконтейнерными приложениями с помощью одного конфигурационного файла (docker-compose.yml).

Пример docker-compose.yml

services:
  casic:
    ports:
      - "7777:7777"
    restart: unless-stopped
 
  password-manager:
    ports:
      - "5050:5050"
    restart: unless-stopped
 
  password-manager-db:
    image: mysql:latest
    ports:
      - "3306:3306"
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: "nfbattackdefensepassword!"
      MYSQL_DATABASE: "password_manager_database"

Этот docker-compose.yml файл запускает три контейнера:

  • casic:

    • Первый сервис
    • Порт 7777 на хосте проксируется в контейнер для доступа к сервису.
    • Настройка restart: unless-stopped автоматически перезапускает контейнер, если он остановился по любой причине, кроме ручной остановки.
  • password-manager:

    • Второй сервис
    • Порт 5050 на хосте проксируется в контейнер для доступа к этому сервису.
  • password-manager-db:

    • Это контейнер с MySQL, работающий на образе mysql:latest.
    • Порт 3306 (стандартный порт MySQL) пробрасывается на хост для прямого доступа к базе данных.
    • Настройки через переменные окружения:
      • MYSQL_ROOT_PASSWORD устанавливает пароль для root пользователя MySQL.
      • MYSQL_DATABASE создаёт базу данных с именем password_manager.

1. Запуск всех контейнеров

Эта команда запускает все контейнеры, описанные в docker-compose.yml, в фоновом режиме.

docker compose up -d

2. Перезапуск контейнеров

Перезапускает все сервисы, указанные в docker-compose.yml.

docker compose restart

3. Запуск отдельного сервиса

Запускает конкретный сервис, указанный в docker-compose.yml.

docker compose up <service_name> -d

4. Перезапуск отдельного сервиса

Перезапускает конкретный сервис, указанный в docker-compose.yml.

docker compose restart <service_name>

5. Остановка контейнеров

Останавливает все контейнеры, запущенные через docker-compose.

docker compose down

6. Сборка образов

Создает образы для сервисов, указанных в docker-compose.yml.

docker compose build

7. Применение изменений в конфигурации

Если вы изменили docker-compose.yml, используйте эту команду, чтобы применить изменения.

docker compose up -d --build