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

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
- Установите утилиты для работы с репозиториями:
sudo dnf install -y dnf-utils- Добавьте официальный репозиторий Docker:
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo- Обновите кеш репозиториев:
sudo dnf update -y- Проверьте, что репозиторий добавлен:
sudo dnf repolist -v
- Установите Docker CE:
sudo dnf install -y docker-ce
- Проверьте версию Docker:
docker --version(Вы увидите строку с версией Docker — она зависит от репозитория и времени установки.)
- Запустите сервис и включите автозапуск при старте системы:
sudo systemctl start dockersudo systemctl enable docker- Проверьте статус сервиса:
sudo systemctl status docker
Вы должны увидеть активный (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 и запустит контейнер, который выведет приветственное сообщение. Это простая проверка корректности установки.

Основные команды Docker
Полный список команд можно получить просто введя:
docker
Информация о демоне и хосте:
sudo docker info
Поиск образов на Docker Hub:
sudo docker search centos
Столбец 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.

Чтобы создать образ из состояния контейнера, используйте docker commit, но в производстве чаще применяют Dockerfile для воспроизводимости.
Лучшие практики и безопасность
- Используйте официальные или доверенные образы.
- Минимизируйте привилегии контейнеров: избегайте запуска с
--privilegedи монтирования корневой файловой системы хоста. - Отключайте необязательные порты и сервисы внутри контейнера.
- Регулярно обновляйте образы и систему. Сканируйте образы на уязвимости (например, инструменты Clair, Trivy).
- Храните секреты вне образов: используйте секреты Docker Swarm, Kubernetes Secrets или менеджеры секретов.
Безопасность хоста: ограничьте доступ к сокету Docker (/var/run/docker.sock), так как доступ к нему эквивалентен root-привилегиям на хосте.
Отладка и частые проблемы
- Служба Docker не запускается — смотрите логи:
sudo journalctl -u docker --no-pager | tail -n 200- Ошибка при загрузке образа — проверьте сетевые правила и доступ к Docker Hub или приватному регистру.
- Проблемы с правами файлов и томами — проверьте владельцев и 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 или изменение конфигурации привело к сбоям:
- Остановите проблемную версию:
sudo systemctl stop docker. - Восстановите конфигурации из бэкапа
/etc/docker/daemon.json. - При необходимости откатите пакет до предыдущей версии через
dnf downgrade docker-ce(если доступна). - В крайнем случае удалите Docker и восстановите сервисы на виртуальной машине до стабилизации.
Совместимость и миграция
- Репозиторий добавлен для CentOS — работает и на Rocky Linux 8 благодаря бинарной совместимости.
- При миграции с другой системы убедитесь, что версии Docker совместимы с образами и оркестратором.
Короткая методология для продакшена
- Создайте тестовую среду, равную продакшену как можно ближе.
- Используйте автоматическую сборку и тестирование образов в CI.
- Храните образы в приватном регистре с контролем версий.
- Внедрите мониторинг, алёрты и политику обновлений.
Заключение
В этом руководстве вы узнали, как установить Docker CE на Rocky Linux 8, дать доступ пользователю, проверить установку и выполнить первые шаги с образами и контейнерами. После освоения базовых команд можно переходить к созданию Dockerfile, организации CI/CD и использованию оркестраторов для продакшена.
Ключевые рекомендации:
- Используйте официальные образы и храните секреты в безопасном хранилище.
- Тестируйте обновления Docker в стейджинге перед продакшеном.
- Настройте сканирование образов на уязвимости.
Ссылки для продолжения обучения: официальная документация Docker, руководства по Dockerfile, и материалы по Kubernetes.
Похожие материалы
Добавить «Завершить задачу» в панель задач Windows 11
Вентилятор Microsoft Surface всегда работает — что делать
Не удаётся войти в Instagram — как исправить
Очистка истории адресной строки Проводника Windows
Как изменить качество резервного копирования в Google Photos