Как установить 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).

  1. Добавляем репозиторий:
    udo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
  2. Проверяем доступные версии 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 (например, для поддержки старых проектов), можно установить его по следующему сценарию:

  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
  2. Делаем скачанный файл исполняемым:
    sudo chmod +x /usr/local/bin/docker-compose
  3. Проверяем установку:
    docker-compose --version
    Вы должны увидеть что-то вроде
    docker-compose version 1.29.2, build 5becea4c.

Важно:

  1. Docker Compose v1 больше не получает активных обновлений и постепенно теряет поддержку.
  2. Compose v1 вызывается через docker-compose, в то время как Compose v2 запускается как docker compose.

Поэтому, если нет прямой необходимости, используйте именно v2, встроенную в Docker CLI.


5. Конфигурация привилегий (необязательно)

По умолчанию для всех команд Docker требуются права sudo или пользователя root. Чтобы управлять контейнерами под своей учётной записью без sudo, выполните:

  1. Добавляем пользователя в группу docker:
    sudo groupadd docker
    sudo usermod -aG docker $(whoami)
  2. Выходим из сеанса и входим снова, либо перезапускаем оболочку:
    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

  1. Создайте файл docker-compose.yml в любом каталоге, например, ~/docker-test/:
    version: '3.8'
    services:
    web:
    image:
    nginx:latest
    ports: - "8080:80"
  2. Перейдите в каталог и запустите сервисы:
    cd ~/docker-test docker compose up -d
  3. Откройте в браузере адрес http://<IP_сервера>:8080 (или http://localhost:8080, если вы работаете локально). Вы должны увидеть стартовую страницу Nginx.
  4. После проверки остановите контейнеры и удалите созданные ресурсы:
    docker compose down

Таким образом, вы убедитесь, что и Docker Engine, и Docker Compose функционируют корректно.


7. Обновление Docker и Compose в будущем

Чтобы поддерживать систему в актуальном состоянии и получать новые функции, достаточно периодически выполнять обновление пакетов:

  1. Обновление Docker Engine и сопутствующих пакетов:
    sudo dnf update -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  2. Перезапуск службы Docker (рекомендуется после обновления):
    sudo systemctl restart docker
  3. Проверка версий:
    docker version
    docker compose version
    При появлении новых релизов вы будете автоматически получать обновлённые пакеты из официального репозитория.

Совет по будущей поддержке:

  • Следите за анонсами в официальном блоге Docker (https://www.docker.com/blog/) и в репозитории GitHub, чтобы вовремя адаптировать свои конфигурации.
  • При выходе новых версий Compose v2 уточняйте, нет ли изменений в синтаксисе docker-compose.yml. Многие нововведения будут поступать именно в ветку v2, включая интеграцию с Docker CLI и улучшения многоплатформенной сборки.

8. Рекомендации по безопасной эксплуатации

  1. Регулярно обновляйте OS и Docker-пакеты (как описано выше), чтобы вовремя получить исправления уязвимостей.
  2. Следите за файлами образов и контейнеров:
    • Удаляйте неиспользуемые образы командой docker image prune -a
    • Очищайте неиспользуемые тома: docker volume prune
    Это поможет предотвратить накопление «мусора» и сэкономит дисковое пространство.
  3. Используйте официальные образы из Docker Hub или собственный приватный реестр, чтобы снизить риск внедрения вредоносного кода.
  4. Изучайте возможности Docker Content Trust для проверки подписи образов:
    export DOCKER_CONTENT_TRUST=1 docker pull myimage:latest

9. Заключение

Мы рассмотрели полный цикл установки Docker Engine и Docker Compose на CentOS Stream 9:

  1. Подготовили систему и установили необходимые утилиты.
  2. Добавили официальный репозиторий Docker CE.
  3. Установили Docker Engine, запустили и проверили его статус.
  4. Установили Docker Compose v2 и при необходимости показали альтернативную установку Compose v1.
  5. Настроили привилегии пользователя для работы без sudo.
  6. Провели тестовые запуски контейнера hello-world и простого проекта с Nginx.
  7. Рассказали об обновлении и безопасной эксплуатации.

Следуя данному руководству, вы получите надёжный и современный стек для работы с контейнерами, готовый к быстрому развёртыванию приложений и масштабированию. Развивайте свои DevOps-навыки и будьте уверены в стабильности инструментов!

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *