Как установить Docker и Docker Compose на CentOS Stream 9: пошаговое руководство
В условиях быстрого развития DevOps-практик и перехода на контейнеризацию важно иметь надёжный и актуальный инструментарий. В этой статье мы рассмотрим, как установить Docker Engine и Docker Compose на CentOS Stream 9 с учётом последних рекомендаций, а также обеспечим будущее обновление и сопровождение.
Почему именно CentOS Stream 9 и Docker
- CentOS Stream 9 — это плавно обновляемый дистрибутив, который показывает, чего ждать в следующем выпуске RHEL. Он идеально подходит для тех, кто хочет быть «на шаг впереди» и быстро интегрировать свежие возможности в собственные проекты.
- Docker Engine — это один из самых популярных контейнерных рантаймов, обеспечивающий запуск и управление контейнерами. Он активно развивается и получает обновления безопасности.
- Docker Compose v2 интегрирован прямо в Docker CLI и будет основной веткой развития, поэтому использование именно его актуально для перспективных проектов.
Ниже представлена подробная инструкция, которая поможет за 10–15 минут подготовить чистую или уже используемую систему CentOS Stream 9 к работе с контейнерами.
1. Подготовка системы
1.1. Обновление пакетов
Перед установкой любых компонентов важно убедиться, что в системе отсутствуют устаревшие зависимости. Запустите:
sudo dnf update -y
sudo dnf install -y dnf-plugins-core
dnf update -y
обновит индекс пакетов и сами пакеты до актуальных версий.dnf-plugins-core
позволит нам работать с репозиториями более гибко.
1.2. Установка утилит и драйверов
Для корректного функционирования Docker понадобятся некоторые дополнительные пакеты:
sudo dnf install -y yum-utils device-mapper-persistent-data lvm2
yum-utils
— вспомогательные утилиты для работы с репозиториями.device-mapper-persistent-data
иlvm2
— пакеты, необходимые Docker-среде для управления томами и слоями.
2. Добавление официального Docker-репозитория
Для получения самых свежих и проверенных пакетов Docker-рекомендуется использовать официальный репозиторий Docker CE (Community Edition).
- Добавляем репозиторий:
udo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
- Проверяем доступные версии Docker (опционально, чтобы убедиться, что репозиторий добавлен корректно):
sudo dnf list docker-ce --showduplicates | sort -r
В выводе вы увидите все доступные версии. Если вы хотите всегда устанавливать самую последнюю стабильную версию, то выбор конкретной версии можно пропустить.
3. Установка Docker Engine
3.1. Установка пакетов
Установим сразу всё необходимое для корректной работы Docker:
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.docker-buildx-plugin
— расширенный плагин для сборки многоархитектурных образов.docker-compose-plugin
— плагин Docker Compose v2, интегрированный в Docker CLI.
3.2. Запуск службы Docker
После установки сразу запустим и включим Docker, чтобы он автоматически стартовал при загрузке:
sudo systemctl enable --now docker
- Флаг
--now
делает так, чтобы служба запустилась немедленно.
Чтобы убедиться, что служба работает без ошибок:
sudo systemctl status docker
В выводе должно быть указано active (running)
.
3.3. Проверка версии Docker
Уточним, какие версии клиента и демона установлены:
docker version
Вы увидите строки вида:
Client: Docker Engine - Community
Version: 20.10.x
API version: 1.41
...
Server: Docker Engine - Community
Engine:
Version: 20.10.x
API version: 1.41 (minimum version 1.12)
...
Если клиент и сервер запущены и версии отображаются корректно, значит установка Docker Engine выполнена успешно.
4. Установка и настройка Docker Compose
4.1. Использование Docker Compose v2 (рекомендуется)
При установке пакета docker-compose-plugin
вместе с Docker Engine уже был добавлен плагин Docker Compose v2. Чтобы проверить это, выполните:
docker compose version
В выводе будет строка типа Docker Compose version v2.xx.x
, что означает, что плагин успешно установлен. Теперь все команды Compose выполняются через встроенный плагин:
- Запуск:
docker compose up -d
- Остановка:
docker compose down
4.1.1. Настройка автодополнения (опционально)
Чтобы получать автодополнение для команд docker compose
в оболочке bash
, выполните:
mkdir -p ~/.docker/cli-plugins
cp /usr/libexec/docker/cli-plugins/docker-compose ~/.docker/cli-plugins/
echo "export PATH=\$HOME/.docker/cli-plugins:\$PATH" >> ~/.bashrc
source ~/.bashrc
Теперь при вводе docker co…
вы получите подсказки и автодополнение для команд Compose.
4.2. Резервный вариант: Docker Compose v1
Если по какой-либо причине вам необходим Docker Compose версии 1 (например, для поддержки старых проектов), можно установить его по следующему сценарию:
- Скачиваем бинарный файл нужной версии (наиболее свежей из ветки v1). Замените
1.29.2
на актуальную, если это требуется:sudo curl -L \ "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" \ -o /usr/local/bin/docker-compose
- Делаем скачанный файл исполняемым:
sudo chmod +x /usr/local/bin/docker-compose
- Проверяем установку:
docker-compose --version
Вы должны увидеть что-то вродеdocker-compose version 1.29.2, build 5becea4c
.
Важно:
- Docker Compose v1 больше не получает активных обновлений и постепенно теряет поддержку.
- Compose v1 вызывается через
docker-compose
, в то время как Compose v2 запускается какdocker compose
.
Поэтому, если нет прямой необходимости, используйте именно v2, встроенную в Docker CLI.
5. Конфигурация привилегий (необязательно)
По умолчанию для всех команд Docker требуются права sudo
или пользователя root
. Чтобы управлять контейнерами под своей учётной записью без sudo
, выполните:
- Добавляем пользователя в группу
docker
:sudo groupadd docker
sudo usermod -aG docker $(whoami)
- Выходим из сеанса и входим снова, либо перезапускаем оболочку:
exit
# После повторного входа выполните:
docker run --rm hello-world
Если при запуске контейнера больше не требуетсяsudo
, настройка группы прошла успешно.
6. Тестовая проверка установки
6.1. Проверка работы Docker Engine
Самый простой тест — запустить образ hello-world
:
docker run --rm hello-world
В случае корректной настройки вы увидите сообщение:
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
6.2. Тестовый проект с помощью Docker Compose
- Создайте файл
docker-compose.yml
в любом каталоге, например,~/docker-test/
:version: '3.8'
services:
web:
image:
nginx:latest
ports: - "8080:80"
- Перейдите в каталог и запустите сервисы:
cd ~/docker-test docker compose up -d
- Откройте в браузере адрес
http://<IP_сервера>:8080
(илиhttp://localhost:8080
, если вы работаете локально). Вы должны увидеть стартовую страницу Nginx. - После проверки остановите контейнеры и удалите созданные ресурсы:
docker compose down
Таким образом, вы убедитесь, что и Docker Engine, и Docker Compose функционируют корректно.
7. Обновление Docker и Compose в будущем
Чтобы поддерживать систему в актуальном состоянии и получать новые функции, достаточно периодически выполнять обновление пакетов:
- Обновление Docker Engine и сопутствующих пакетов:
sudo dnf update -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
- Перезапуск службы Docker (рекомендуется после обновления):
sudo systemctl restart docker
- Проверка версий:
docker version
docker compose version
При появлении новых релизов вы будете автоматически получать обновлённые пакеты из официального репозитория.
Совет по будущей поддержке:
- Следите за анонсами в официальном блоге Docker (https://www.docker.com/blog/) и в репозитории GitHub, чтобы вовремя адаптировать свои конфигурации.
- При выходе новых версий Compose v2 уточняйте, нет ли изменений в синтаксисе
docker-compose.yml
. Многие нововведения будут поступать именно в ветку v2, включая интеграцию с Docker CLI и улучшения многоплатформенной сборки.
8. Рекомендации по безопасной эксплуатации
- Регулярно обновляйте OS и Docker-пакеты (как описано выше), чтобы вовремя получить исправления уязвимостей.
- Следите за файлами образов и контейнеров:
- Удаляйте неиспользуемые образы командой
docker image prune -a
- Очищайте неиспользуемые тома:
docker volume prune
- Удаляйте неиспользуемые образы командой
- Используйте официальные образы из Docker Hub или собственный приватный реестр, чтобы снизить риск внедрения вредоносного кода.
- Изучайте возможности Docker Content Trust для проверки подписи образов:
export DOCKER_CONTENT_TRUST=1 docker pull myimage:latest
9. Заключение
Мы рассмотрели полный цикл установки Docker Engine и Docker Compose на CentOS Stream 9:
- Подготовили систему и установили необходимые утилиты.
- Добавили официальный репозиторий Docker CE.
- Установили Docker Engine, запустили и проверили его статус.
- Установили Docker Compose v2 и при необходимости показали альтернативную установку Compose v1.
- Настроили привилегии пользователя для работы без
sudo
. - Провели тестовые запуски контейнера
hello-world
и простого проекта с Nginx. - Рассказали об обновлении и безопасной эксплуатации.
Следуя данному руководству, вы получите надёжный и современный стек для работы с контейнерами, готовый к быстрому развёртыванию приложений и масштабированию. Развивайте свои DevOps-навыки и будьте уверены в стабильности инструментов!