Полная инструкция по установке и настройке Docker & Docker Compose & Portainer на Alma Linux 10
- Подготовка системы
- Обновление системы
- Установка необходимых зависимостей
- Настройка SELinux
- Настройка Firewall
- Установка Docker Engine
- Добавление официального репозитория Docker
- Установка Docker CE и компонентов
- Настройка и запуск Docker
- Запуск сервиса и автозапуск
- Добавление пользователя в группу docker
- Настройка daemon.json (рекомендуется)
- Docker Compose
- Вариант 1 — плагин (рекомендуется, уже установлен)
- Вариант 2 — standalone бинарник (для совместимости)
- Проверка установки
- Базовые проверки
- Portainer — Web GUI интерфейс
- Возможности Portainer
- Создание volume и запуск Portainer
- Альтернатива — через Docker Compose
- Первый вход в Portainer
- Открыть в браузере
- Шаги первоначальной настройки
- Обновление Portainer
- Полезные команды — шпаргалка
Подготовка системы
Важно: Требования: Alma Linux 10 (минимальная установка или рабочая станция), доступ root или sudo, выход в интернет.
Обновление системы
Перед установкой необходимо обновить все пакеты до актуальных версий:
sudo dnf update -y && sudo dnf upgrade -y Установка необходимых зависимостей
sudo dnf install -y \
yum-utils \
device-mapper-persistent-data \
lvm2 \
curl \
wget \
git Настройка SELinux
Docker начиная с версии 20.10 корректно работает с SELinux в режиме enforcing. Оставьте стандартные настройки.
# Проверить текущий режим
getenforce
# Ожидаемый вывод: Enforcing
# Изменять режим для работы Docker не требуется Настройка Firewall
Откройте необходимые порты для Portainer и будущих сервисов:
# Portainer HTTPS (рекомендуется)
sudo firewall-cmd --permanent --add-port=9443/tcp
# Portainer HTTP (опционально)
sudo firewall-cmd --permanent --add-port=9000/tcp
# Порт для ваших приложений (пример)
sudo firewall-cmd --permanent --add-port=8080/tcp
# Применить изменения
sudo firewall-cmd --reload
# Проверить открытые порты
sudo firewall-cmd --list-ports Установка Docker Engine
Важно: Используйте только официальный репозиторий Docker — пакет из репозитория дистрибутива содержит устаревшую версию.
Добавление официального репозитория Docker
sudo dnf config-manager \
--add-repo \
https://download.docker.com/linux/rhel/docker-ce.repo Установка Docker CE и компонентов
Установите Docker Engine, CLI, containerd и плагины:
sudo dnf install -y \
docker-ce \
docker-ce-cli \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin Что устанавливается:
- docker-ce — Docker Engine (основной демон)
- docker-ce-cli — Клиент командной строки
- containerd.io — Среда выполнения контейнеров
- docker-buildx-plugin — Расширенная сборка образов (buildx)
- docker-compose-plugin — Docker Compose v2 как плагин
Настройка и запуск Docker
Запуск сервиса и автозапуск
# Запустить Docker прямо сейчас
sudo systemctl start docker
# Включить автозапуск при загрузке системы
sudo systemctl enable docker
# Проверить статус — должно быть Active: active (running)
sudo systemctl status docker Добавление пользователя в группу docker
Это позволит запускать Docker-команды без sudo:
# Добавить текущего пользователя в группу docker
sudo usermod -aG docker $USER
# Применить изменения без перелогинивания
newgrp docker
# Или просто выйти из сессии и войти снова Настройка daemon.json (рекомендуется)
Создайте файл конфигурации Docker daemon для ограничения логов и настройки сети:
sudo nano /etc/docker/daemon.json Содержимое файла:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"storage-driver": "overlay2",
"live-restore": true,
"default-address-pools": [
{"base": "172.20.0.0/16", "size": 24}
]
} # Перезапустить после изменения конфигурации
sudo systemctl restart docker Docker Compose
Docker Compose v2 уже установлен на шаге 02 как плагин. Команда: docker compose (без дефиса).
Вариант 1 — плагин (рекомендуется, уже установлен)
# Проверить версию плагина
docker compose version
# Основные команды
docker compose up -d # Запустить в фоне
docker compose down # Остановить
docker compose ps # Статус сервисов
docker compose logs -f # Логи в реальном времени Вариант 2 — standalone бинарник (для совместимости)
Устанавливайте только если нужна команда docker-compose (с дефисом) для старых скриптов:
# Получить актуальную версию автоматически
COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest \
| grep '"tag_name"' | cut -d'"' -f4)
# Скачать и установить
sudo curl -L \
"https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" \
-o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# Проверка
docker-compose --version Проверка установки
Базовые проверки
# Проверить версии
docker --version
docker compose version
# Подробная информация о системе
docker info
# Запустить тестовый контейнер
docker run --rm hello-world
# Список запущенных контейнеров
docker ps Ожидаемый результат hello-world: вы увидите сообщение «Hello from Docker!» — это подтверждает, что daemon, клиент и сеть работают корректно.
Portainer — Web GUI интерфейс
Portainer CE — бесплатный open-source web-интерфейс для управления Docker. Позволяет управлять контейнерами, образами, сетями, томами и стеками через браузер без командной строки.
Возможности Portainer
- Создание и управление контейнерами через UI
- Развёртывание стеков (Docker Compose) прямо в браузере
- Просмотр логов и терминал в контейнер
- Управление образами, сетями и томами
- Статистика потребления ресурсов в реальном времени
- Управление пользователями и правами доступа
Создание volume и запуск Portainer
# Создать volume для хранения данных Portainer
docker volume create portainer_data
# Запустить Portainer
docker run -d \
--name portainer \
--restart=always \
-p 9000:9000 \
-p 9443:9443 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest Альтернатива — через Docker Compose
Создайте файл docker-compose.portainer.yml:
version: '3.8'
services:
portainer:
image: portainer/portainer-ce:latest
container_name: portainer
restart: always
ports:
- "9000:9000"
- "9443:9443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
volumes:
portainer_data:
# Запустить стек
docker compose -f docker-compose.portainer.yml up -d
# Проверить статус
docker ps | grep portainer Первый вход в Portainer
Открыть в браузере
# HTTPS (рекомендуется) — самоподписанный сертификат, браузер выдаст предупреждение
https://<IP-адрес-сервера>:9443
# HTTP (без шифрования)
http://<IP-адрес-сервера>:9000 Важно: с момента первого запуска Portainer у вас есть только 5 минут для создания аккаунта admin. Если время вышло — перезапустите контейнер: docker restart portainer
Шаги первоначальной настройки
- Откройте браузер по адресу выше. Примите предупреждение о самоподписанном сертификате.
- Задайте имя пользователя (по умолчанию admin) и надёжный пароль (минимум 12 символов).
- Нажмите «Create user».
- На странице быстрого старта выберите Get Started → local для управления локальным Docker.
- Нажмите Connect — вы окажетесь в главном дашборде Portainer.
Обновление Portainer
# Скачать новый образ
docker pull portainer/portainer-ce:latest
# Остановить и удалить старый контейнер (данные сохранятся в volume!)
docker stop portainer && docker rm portainer
# Запустить заново с теми же параметрами
docker run -d \
--name portainer \
--restart=always \
-p 9000:9000 \
-p 9443:9443 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest Полезные команды — шпаргалка
| Команда | Описание |
| docker ps | Список запущенных контейнеров |
| docker ps -a | Все контейнеры, включая остановленные |
| docker stop <id> | Остановить контейнер |
| docker start <id> | Запустить контейнер |
| docker restart <id> | Перезапустить контейнер |
| docker rm <id> | Удалить остановленный контейнер |
| docker exec -it <id> bash | Открыть терминал в контейнере |
| docker logs -f <id> | Логи контейнера в реальном времени |
| docker images | Список локальных образов |
| docker pull <image> | Скачать образ из Docker Hub |
| docker rmi <image> | Удалить образ |
| docker system prune -a | Очистить всё неиспользуемое |
| docker stats | Мониторинг использования ресурсов |
| docker compose up -d | Запустить стек в фоне |
| docker compose down | Остановить стек |
| docker compose down -v | Остановить стек и удалить тома |
| docker compose up -d —build | Пересобрать и перезапустить стек |
| docker compose logs -f | Логи всех сервисов стека |
| docker compose ps | Статус сервисов стека |
| docker volume ls | Список томов |
| docker network ls | Список сетей |
Важно: Безопасность в продакшене: ограничьте доступ к порту 9443 через firewall только с доверенных IP. Настройте обратный прокси (nginx/traefik) с Let’s Encrypt сертификатом для нормального TLS.








