LinuxNotes
← Все статьи

Docker Compose: запуск первых контейнеров

Один Compose-файл, локальный веб-сервер и понятный жизненный цикл контейнера.

Серверы и Docker2 мин чтения

Подготовка

Пример рассчитан на Arch Linux или CachyOS. Требуются sudo и доступ к реестру образов. Контейнер запустит тестовый Nginx только на loopback-интерфейсе.

sudo pacman -Syu docker docker-compose
sudo systemctl enable --now docker
sudo docker compose version
mkdir -p ~/compose-demo
cd ~/compose-demo

Доступ к Docker фактически даёт привилегии root, поэтому в примере используется sudo, без добавления пользователя в группу docker.

Compose-файл

Создайте в каталоге проекта файл compose.yaml:

services:
  web:
    image: nginx:stable-alpine
    ports:
      - "127.0.0.1:8080:80"
    restart: unless-stopped

Порт 8080 компьютера направляется на порт 80 контейнера. Привязка к 127.0.0.1 исключает прямую доступность сервиса из локальной сети. Тег stable-alpine меняется со временем; для воспроизводимого production-развёртывания фиксируйте digest проверенного образа.

Запуск и проверка

sudo docker compose config
sudo docker compose up -d
sudo docker compose ps
curl -I http://127.0.0.1:8080

config проверяет и выводит итоговую конфигурацию. up -d создаёт контейнер в фоне. Откройте адрес в браузере: должна появиться стандартная страница Nginx.

Диагностика

sudo docker compose logs --tail=50 web
sudo docker compose exec web nginx -t

Журнал покажет ошибки запуска, а nginx -t проверит конфигурацию внутри контейнера. Если порт занят, выберите другой локальный порт в YAML и повторите up -d.

Остановка и обновление

sudo docker compose down
sudo docker compose pull
sudo docker compose up -d

down удаляет контейнер и сеть проекта. В этом примере постоянных данных нет. В проектах с томами сначала продумайте резервное копирование; флаг down -v удаляет именованные тома и может уничтожить данные.

Документация: Docker Compose.

Читайте дальше