Гид по технологиям

Установка и использование Docker на Rocky Linux 8

6 min read Контейнеризация Обновлено 25 Nov 2025
Docker на Rocky Linux 8 — установка и запуск
Docker на Rocky Linux 8 — установка и запуск

Логотип Docker и окружение Rocky Linux

Docker — это платформа для изоляции приложений в контейнерах. Она появилась в 2013 году и позволяет запускать приложения одинаково на любой машине независимо от ОС и платформы. Контейнеры — это лёгкие, изолированные окружения, которые используют ресурсы хоста и позволяют запускать несколько независимых систем на одном сервере.

Почему стоит использовать Docker

Docker упрощает создание, деплой и запуск приложений без проблем несовместимости окружения разработки и продакшена. Контейнеры ускоряют тестирование, позволяют воспроизводить окружение и управлять инфраструктурой эффективнее. Для организаций доступны две редакции: Docker CE (Community Edition) и Docker EE (Enterprise Edition) — коммерческое решение с расширенной поддержкой и управлением.

Важно: контейнеры не заменяют виртуальные машины полностью — они лучше подходят для изолированных приложений и микросервисов, но не для полного разделения гостевых ОС.

Перед началом (требования)

  • Чистая установка Rocky Linux 8.
  • Рекомендуется не менее 2 ГБ оперативной памяти; для сборок и CI лучше 4 ГБ и больше. Минимум: 2 vCPU, 20 ГБ свободного диска для Docker и образов (потребность растёт с количеством образов).
  • Установлен пользователь с sudo-привилегиями.

Факт-бокс:

  • Рекомендуемый минимум: 2 ГБ RAM, 20 ГБ диска.
  • Оптимально для разработчика: 4+ ГБ RAM.

Обновление сервера

Сначала обновите систему:

sudo dnf update -y

Если ранее были установлены пакеты Docker, их рекомендуется удалить перед новой установкой:

sudo dnf remove docker*

Установка Docker

  1. Установите утилиты для работы с репозиториями:
sudo dnf install -y dnf-utils
  1. Добавьте официальный репозиторий Docker:
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  1. Обновите кеш репозиториев:
sudo dnf update -y
  1. Проверьте, что репозиторий добавлен:
sudo dnf repolist -v

Список репозиториев для Rocky Linux с добавленным репо Docker

  1. Установите Docker CE:
sudo dnf install -y docker-ce

Установка Docker CE через dnf

  1. Проверьте версию Docker:
docker --version

(Вы увидите строку с версией Docker — она зависит от репозитория и времени установки.)

  1. Запустите сервис и включите автозапуск при старте системы:
sudo systemctl start docker
sudo systemctl enable docker
  1. Проверьте статус сервиса:
sudo systemctl status docker

Статус службы docker в systemd

Вы должны увидеть активный (running) статус. Для выхода из просмотра systemctl нажмите q.

Важно: если systemctl показывает ошибки, сначала изучите логи через sudo journalctl -u docker --no-pager.

Разрешение на запуск Docker без sudo

Чтобы запускать docker-команды без префикса sudo, добавьте пользователя в группу docker:

sudo usermod -aG docker $USER

Где $USER — имя текущего пользователя. Затем выйдите из сессии и войдите заново, чтобы изменения вступили в силу.

Примечание: добавление пользователя в группу docker даёт привилегии управления контейнерами и потенциально доступ к хост-системе; используйте с осторожностью.

Проверка установки

Подтвердите работу Docker, запустив официальный тестовый образ:

docker container run hello-world

Если образ отсутствует локально, Docker скачает его с Docker Hub и запустит контейнер, который выведет приветственное сообщение. Это простая проверка корректности установки.

Вывод команды hello-world из Docker

Основные команды Docker

Полный список команд можно получить просто введя:

docker

Список команд Docker

Информация о демоне и хосте:

sudo docker info

Вывод docker info

Поиск образов на Docker Hub:

sudo docker search centos

Результаты поиска centos на Docker Hub

Столбец OFFICIAL с отметкой OK указывает на образы, поддерживаемые проектом/компанией.

Скачивание образа:

sudo docker pull centos

Просмотр локальных образов:

sudo docker images

Запуск контейнера

Для создания и запуска контейнера используйте docker run или docker create. Формат команды:

sudo docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

Пример запуска CentOS образа (интерактивная сессия):

sudo docker run -it centos /bin/bash

После запуска вы попадёте в оболочку контейнера и будете работать как root внутри этого контейнера. Любые изменения внутри контейнера по умолчанию затронут только этот контейнер. Чтобы выйти — введите exit.

Обновление пакетов внутри контейнера CentOS

Чтобы создать образ из состояния контейнера, используйте docker commit, но в производстве чаще применяют Dockerfile для воспроизводимости.

Лучшие практики и безопасность

  • Используйте официальные или доверенные образы.
  • Минимизируйте привилегии контейнеров: избегайте запуска с --privileged и монтирования корневой файловой системы хоста.
  • Отключайте необязательные порты и сервисы внутри контейнера.
  • Регулярно обновляйте образы и систему. Сканируйте образы на уязвимости (например, инструменты Clair, Trivy).
  • Храните секреты вне образов: используйте секреты Docker Swarm, Kubernetes Secrets или менеджеры секретов.

Безопасность хоста: ограничьте доступ к сокету Docker (/var/run/docker.sock), так как доступ к нему эквивалентен root-привилегиям на хосте.

Отладка и частые проблемы

  1. Служба Docker не запускается — смотрите логи:
sudo journalctl -u docker --no-pager | tail -n 200
  1. Ошибка при загрузке образа — проверьте сетевые правила и доступ к Docker Hub или приватному регистру.
  2. Проблемы с правами файлов и томами — проверьте владельцев и SELinux-контексты (если SELinux включён).

Пример: если контейнер не может записать в монтированную папку, попробуйте проверить контекст SELinux или выставить корректные uid/gid.

Альтернативы и варианты использования

  • Podman — daemonless альтернатива Docker, совместимая с OCI, часто популярна для систем с повышенными требованиями к безопасности.
  • Buildah — сборка образов без демона.
  • Containerd — низкоуровневый контейнерный рантайм, используемый в Kubernetes.

Когда не использовать Docker: если вам нужна полная эмуляция отдельной ОС с собственным ядром — тогда лучше использовать виртуальную машину.

Модель принятия решения (когда Docker подходит)

  • Быстрая изоляция приложений и микросервисов — Docker подходит.
  • Для сложных многосервисных окружений в продакшне — сочетайте Docker с оркестратором (Kubernetes, Docker Swarm).
flowchart TD
  A[Нужно ли изолировать приложение?] -->|Да| B{Требуется ли отдельное ядро?}
  B -->|Да| C[Используйте ВМ]
  B -->|Нет| D[Используйте контейнеры 'Docker/Podman']
  D --> E{Нужен ли оркестратор?}
  E -->|Да| F[Используйте Kubernetes]
  E -->|Нет| G[Достаточно Docker Compose или Swarm]

Роли и чек-листы

Администратор (инфраструктура):

  • Обновить систему и бэкап перед установкой.
  • Добавить официальный репозиторий и проверить подписи пакетов.
  • Настроить мониторинг и логирование Docker.
  • Настроить firewall и доступ к сокету Docker.

Разработчик:

  • Писать Dockerfile для воспроизводимости сборок.
  • Минимизировать слой образа и указывать версии базовых образов.
  • Использовать docker-compose для локальной разработки.

DevOps инженер:

  • Настроить CI/CD для сборки и публикации образов в приватный регистр.
  • Настроить сканирование на уязвимости.
  • Автоматизировать очистку старых образов и контейнеров.

Критерии приёмки

  • Docker установлен и сервис запущен: sudo systemctl status docker показывает active (running).
  • Обычный пользователь может выполнить docker container run hello-world без sudo (если это требование).
  • Возможность переключаться между образами: sudo docker images и sudo docker ps -a возвращают ожидаемые результаты.
  • Отсутствуют ошибки в логах sudo journalctl -u docker после старта.

Тесты и приёмка

Тест-кейсы:

  • Установить Docker и убедиться, что docker --version возвращает строку без ошибок.
  • Скачать образ centos и запустить контейнер, выполнить dnf update внутри и проверить изменение.
  • Протестировать запуск нескольких контейнеров одновременно и измерить нагрузку.

План отката и аварийный сценарий

Если новая версия Docker или изменение конфигурации привело к сбоям:

  1. Остановите проблемную версию: sudo systemctl stop docker.
  2. Восстановите конфигурации из бэкапа /etc/docker/daemon.json.
  3. При необходимости откатите пакет до предыдущей версии через dnf downgrade docker-ce (если доступна).
  4. В крайнем случае удалите Docker и восстановите сервисы на виртуальной машине до стабилизации.

Совместимость и миграция

  • Репозиторий добавлен для CentOS — работает и на Rocky Linux 8 благодаря бинарной совместимости.
  • При миграции с другой системы убедитесь, что версии Docker совместимы с образами и оркестратором.

Короткая методология для продакшена

  1. Создайте тестовую среду, равную продакшену как можно ближе.
  2. Используйте автоматическую сборку и тестирование образов в CI.
  3. Храните образы в приватном регистре с контролем версий.
  4. Внедрите мониторинг, алёрты и политику обновлений.

Заключение

В этом руководстве вы узнали, как установить Docker CE на Rocky Linux 8, дать доступ пользователю, проверить установку и выполнить первые шаги с образами и контейнерами. После освоения базовых команд можно переходить к созданию Dockerfile, организации CI/CD и использованию оркестраторов для продакшена.

Ключевые рекомендации:

  • Используйте официальные образы и храните секреты в безопасном хранилище.
  • Тестируйте обновления Docker в стейджинге перед продакшеном.
  • Настройте сканирование образов на уязвимости.

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

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Добавить «Завершить задачу» в панель задач Windows 11
Windows

Добавить «Завершить задачу» в панель задач Windows 11

Вентилятор Microsoft Surface всегда работает — что делать
Поддержка

Вентилятор Microsoft Surface всегда работает — что делать

Не удаётся войти в Instagram — как исправить
Социальные сети

Не удаётся войти в Instagram — как исправить

Очистка истории адресной строки Проводника Windows
Windows

Очистка истории адресной строки Проводника Windows

Как изменить качество резервного копирования в Google Photos
Фото

Как изменить качество резервного копирования в Google Photos

Переименование вкладок в Chromium — Tab Titler vs Rename Tab
Браузеры

Переименование вкладок в Chromium — Tab Titler vs Rename Tab