Linux Labs

Контейнеры: Docker и compose / Ступень 8 из 11

docker compose: стек одним файлом

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 2 из 7 · на машине · 6 мин

Файл стека

Здесь — что описано в compose.yaml и что compose создаёт по этому файлу.

docker compose читает compose.yaml в текущем каталоге. Каждая запись в services: — сервис: по ней compose создаёт контейнер. Ключи сервиса повторяют ключи docker run:

yaml
services:
  web:
    image: nginx:alpine
    ports:
      - "8080:80"        # -p 8080:80
    depends_on:
      - app              # запускать после app
  app:
    image: busybox
    command: ["sh", "/app/run.sh"]
    environment:
      LOG_LEVEL: info    # -e LOG_LEVEL=info
    volumes:
      - ./app:/app:ro    # каталог рядом с файлом
    restart: unless-stopped

Имя проекта — имя каталога. В стеке урока из ~/stack сервисы proxy и backend, и их контейнеры называются stack-proxy-1 и stack-backend-1. Для проекта compose создаёт сеть stack_default и подключает к ней все сервисы. Имя сервиса работает в ней как имя контейнера в своей сети Docker: proxy находит backend по имени. Ключ networks: у сервиса задаёт ему другие сети — сервисы видят друг друга, только если у них есть общая.

Команды стека выполняют в каталоге с файлом: docker compose ps — состояние сервисов, docker compose logs <сервис> — журнал одного сервиса, с --tail N — его последние строки.

Упражнение · посмотреть

Прочитай журналы сервисов

Стек в ~/stack поднят, на сайт уже приходили запросы. Прочитай последние строки журналов backend и proxy.

Войти и начать Машина доступна после входа
Ubuntu 24.04
Загрузка…