Подробный гайд: работа с Docker Compose на ALT Linux
Ниже приведён пошаговый, актуальный на 2026 год гайд по развёртыванию и использованию Docker Compose в ALT Linux (платформа 10 / Regular / Sisyphus). Гайд учитывает особенности дистрибутива: пакетный менеджер apt-get (RPM-бэкенд), systemd, LSM smack/apparmor, а также переход на Docker Compose V2.
1. Подготовка системы
Перед установкой обновите систему и установите базовые утилиты:
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install -y curl gnupg2 lsb-release ca-certificates jq
Важно для ALT:
- Не подключайте репозитории Docker для Debian/Ubuntu (
download.docker.com/linux/debian). Они используют другой формат пакетов и менеджер зависимостей, что может сломать систему. Используйте либо родные пакеты ALT, либо официальные бинарные релизы.
2. Установка Docker Engine
В ALT Linux p10/Sisyphus Docker доступен в основном репозитории под именем docker.
sudo apt-get install docker -y
sudo systemctl enable --now docker
Проверьте статус и версию:
systemctl status docker
docker --version
Если в вашем репозитории пакета docker нет, подключите ветку p10 или regular через apt-repo
или используйте официальный установочный скрипт Docker (только для RPM-бэкенда):
curl -fsSL https://get.docker.com | sudo sh
3. Установка Docker Compose (V2)
С 2023 года официальная версия Compose поставляется как плагин CLI (docker compose без дефиса). Версия 1 (docker-compose) объявлена устаревшей.
Рекомендуемый способ (универсальный, работает на любой версии)
# Создаём директорию для плагинов
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
# Скачиваем последнюю стабильную версию для amd64
curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 \
-o $DOCKER_CONFIG/cli-plugins/docker-compose
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
Проверка
docker compose version
# Ожидаемый вывод: Docker Compose version v2.x.x
В ALT p10 может быть пакет
docker-compose-plugin. Проверьте:apt-cache search docker-compose. Если есть, можно установить черезsudo apt-get install docker-compose-plugin, но официальный плагин гарантирует последнюю версию и совместимость.
4. Настройка прав доступа
По умолчанию только root и пользователи в группе docker могут управлять демонами.
sudo usermod -aG docker $USER
newgrp docker # или перезайдите в систему
Проверка:
docker run hello-world
5. Создание первого проекта (пример)
Создайте тестовую директорию и файл docker-compose.yml:
mkdir -p ~/demo-compose && cd ~/demo-compose
nano docker-compose.yml
Вставьте минимальный стек (Nginx + кастомное приложение + PostgreSQL):
version: "3.8"
services:
web:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html:ro
depends_on:
- app
restart: unless-stopped
app:
image: python:3.11-slim
command: python -m http.server 8000
working_dir: /app
volumes:
- ./app:/app
expose:
- "8000"
restart: unless-stopped
db:
image: postgres:15-alpine
environment:
POSTGRES_USER: ${DB_USER:-admin}
POSTGRES_PASSWORD: ${DB_PASSWORD:-secret}
POSTGRES_DB: ${DB_NAME:-appdb}
volumes:
- pg/var/lib/postgresql/data
ports:
- "5432:5432"
restart: unless-stopped
volumes:
pg
Создайте необходимые директории:
mkdir -p html app
echo "<h1>ALT Linux + Docker Compose</h1>" > html/index.html
Запуск:
docker compose up -d
Проверка:
docker compose ps
curl http://localhost:8080
6. Основные команды управления
| Команда | Описание |
|---|---|
docker compose up -d |
Запуск сервисов в фоне |
docker compose down |
Остановка и удаление контейнеров, сетей |
docker compose down -v |
Удаление томов вместе с контейнерами |
docker compose logs -f [service] |
Просмотр логов |
docker compose exec service sh |
Вход в контейнер |
docker compose build |
Пересборка образов из Dockerfile |
docker compose config |
Валидация и вывод итогового YAML |
docker compose pull |
Обновление образов |
7. Отладка и типичные проблемы
Проверка состояния демона
systemctl status docker
journalctl -u docker -n 50 --no-pager
Ошибка: permission denied while trying to connect to the Docker daemon socket
sudo systemctl restart docker
sudo usermod -aG docker $USER
newgrp docker
Ошибка с сетью/портами
docker compose ps
sudo ss -tulpn | grep :8080
sudo firewall-cmd --list-ports # если используется firewalld
sudo systemctl enable --now firewalld
sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
Ошибка при запуске из-за LSM (smack/apparmor)
ALT Linux может использовать smack.
Если контейнер падает с Permission denied на монтировании:
# Временно отключить для теста
sudo setenforce 0 # если SELinux
# Или добавить в compose.yml:
# security_opt:
# - apparmor=unconfined
# - label=disable
В большинстве случаев стандартная конфигурация ALT p10 работает без дополнительных правок.
8. Безопасность и best practices
1. Не запускайте сервисы от root внутри контейнеров
- Используйте
user: "1000:1000"вdocker-compose.ymlили создавайте non-root образы.
2. Храните секреты вне репозитория
Используйте .env файл (добавьте в .gitignore):
DB_USER=appuser
DB_PASSWORD=s3cure_p@ssw0rd
DB_NAME=production_db
3. Ограничивайте ресурсы
deploy:
resources:
limits:
cpus: '1.0'
memory: 512M
4. Регулярно обновляйте образы
docker compose pull
docker compose up -d --force-recreate
5. Изолируйте сети
- Создавайте отдельные
networksвdocker-compose.yml, не используйтеhostбез необходимости.
9. Особенности ALT Linux
| Аспект | Примечание |
|---|---|
| Пакетный менеджер | apt-get с RPM-бэкендом. Не используйте dnf/yum. |
| Имя пакета | docker (не docker-ce). Compose V2 лучше ставить как плагин. |
| Файловая система | overlay2 работает стабильно на ext4/xfs. |
| LSM | По умолчанию может быть smack или apparmor. При проблемах с правами на /var/lib/docker проверьте dmesg | grep -i smack. |
| Системная интеграция | systemd используется по умолчанию. Сервис docker включён через systemctl enable docker. |
| Обновления ядра | update-kernel в ALT требует перезагрузки для новых cgroups/namespace фич. |