Как установить Docker на CentOS: полное пошаговое руководство
Docker принципиально изменил способ разработки, доставки и запуска приложений. Упаковывая программное обеспечение в легкие портативные контейнеры, Docker устраняет классическую проблему «работает на моей машине» и значительно упрощает как рабочие процессы разработки, так и развертывание в production. Если вы используете CentOS и хотите использовать возможности контейнеризации, это подробное руководство проведет вас через каждый шаг — от обновления свежей системы до продвинутой конфигурации.
Независимо от того, развертываете ли вы одно веб-приложение или управляете сложными многоконтейнерными окружениями, правильная установка Docker на CentOS — это критически важный первый шаг.
Предварительные требования
Перед началом убедитесь, что у вас есть:
- Сервер CentOS 7 или CentOS 8 (физический или виртуальный)
- Учетная запись пользователя с привилегиями
sudo - Стабильное интернет-соединение
- Базовое знакомство с командной строкой Linux
> Совет профессионала: Для лучшего опыта работы с Docker рассмотрите возможность запуска его на плане VPS Hosting. Виртуальный частный сервер дает вам полный доступ root, выделенные ресурсы и гибкость для запуска контейнеров без ограничений общих сред.
Шаг 1: Обновите систему
Перед установкой нового программного обеспечения всегда обновляйте существующие пакеты, чтобы обеспечить совместимость и безопасность. Выполните следующую команду:
sudo yum update -yЭта команда обновляет все установленные пакеты до их последних версий. Это может занять несколько минут в зависимости от количества ожидающих обновлений. Полностью обновленная система снижает риск конфликтов зависимостей при установке Docker.
Шаг 2: Установка необходимых зависимостей
Docker зависит от нескольких системных пакетов для корректной работы. Установите их одной командой:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2Вот что делает каждый пакет:
| Пакет | Назначение |
|---|---|
yum-utils | Предоставляет утилиту yum-config-manager для управления репозиториями |
device-mapper-persistent-data | Требуется для драйвера хранилища device mapper Docker |
lvm2 | Поддержка Logical Volume Manager для бэкенда хранилища Docker |
Эти зависимости обеспечивают эффективное и надежное управление хранилищем контейнеров Docker в вашей системе CentOS.
Шаг 3: Добавьте официальный репозиторий Docker
Репозитории пакетов CentOS по умолчанию не включают последние пакеты Docker. Вам нужно добавить официальный репозиторий Docker, чтобы получить самый актуальный стабильный выпуск:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repoЭта команда добавляет официальный репозиторий Docker для CentOS в список репозиториев вашей системы. Использование официального источника гарантирует, что вы получите подлинные, актуальные пакеты Docker непосредственно от Docker Inc., а не потенциально устаревшие версии из зеркал третьих сторон.
Вы можете проверить, что репозиторий был успешно добавлен, перечислив ваши настроенные репозитории:
sudo yum repolistШаг 4: Установка Docker Engine
С репозиторием на месте установка Docker проста:
sudo yum install -y docker-ce docker-ce-cli containerd.io> Примечание: Рекомендуется также установить docker-ce-cli (интерфейс командной строки Docker) и containerd.io (среда выполнения контейнера) вместе с основным движком для полной готовой к производству установки.
Это устанавливает Docker Community Edition (CE) — бесплатную версию Docker с открытым исходным кодом, которая идеально подходит как для разработки, так и для производственных рабочих нагрузок.
Шаг 5: Запуск и включение сервиса Docker
Установка Docker не запускает его автоматически. Вам нужно запустить демон Docker и настроить его на автоматический запуск при загрузке системы:
sudo systemctl start docker
sudo systemctl enable dockersystemctl start docker — Запускает сервис Docker немедленно
systemctl enable docker — Настраивает Docker на автоматический запуск при каждой перезагрузке сервера
Проверка статуса сервиса
Убедитесь, что Docker работает корректно:
sudo systemctl status docker
Вы должны увидеть вывод, указывающий на то, что сервис active (running). Если статус показывает какие-либо ошибки, просмотрите системные журналы с помощью journalctl -u docker для получения деталей устранения неполадок.
Шаг 6: Проверка установки Docker
Запустите встроенный тест Docker, чтобы подтвердить, что все работает правильно:
sudo docker run hello-world
Эта команда выполняет следующее:
Подключается к реестру Docker Hub
Загружает легкий образ тестирования hello-worldЕсли установка прошла успешно, вы увидите вывод, начинающийся с:
Hello from Docker!
This message shows that your installation appears to be working correctly.Поздравляем — Docker теперь полностью установлен и работает на вашем сервере CentOS.
Шаг 7: Настройка Docker для пользователей без прав root (опционально, но рекомендуется)
По умолчанию команды Docker требуют sudo (прав root). Для безопасности и удобства в среде разработки вы можете разрешить определённым пользователям без прав root запускать команды Docker, добавив их в группу docker.
Создание группы Docker
В большинстве случаев эта группа создаётся автоматически при установке. Если нет, создайте её вручную:
sudo groupadd dockerДобавление пользователя в группу Docker
Замените your_username на фактическое имя пользователя Linux:
sudo usermod -aG docker your_usernameПрименение изменений
Выйдите и войдите снова, чтобы обновить членство в группе. Или активируйте изменение в текущем сеансе:
newgrp dockerТестирование без Sudo
docker run hello-worldЕсли это выполняется без sudo и без ошибки разрешения, конфигурация работает правильно.
> Предупреждение безопасности: Группа docker предоставляет привилегии, эквивалентные пользователю root. Добавляйте в эту группу только доверенных пользователей в производственных окружениях.
Шаг 8: Справочник основных команд Docker
После запуска Docker вот наиболее важные команды, которые вы будете использовать ежедневно:
Управление контейнерами
# List all running containers
docker ps
# List all containers (including stopped ones)
docker ps -a
# Start a stopped container
docker start container_id
# Stop a running container
docker stop container_id
# Remove a container
docker rm container_id
# Remove all stopped containers at once
docker container pruneУправление образами
# List all locally stored images
docker images
# Pull an image from Docker Hub
docker pull image_name
# Pull a specific version/tag
docker pull image_name:tag
# Remove a local image
docker rmi image_name
# Remove all unused images
docker image prune -aЗапуск контейнеров
# Run a container interactively
docker run -it image_name /bin/bash
# Run a container in detached (background) mode
docker run -d image_name
# Run a container with port mapping
docker run -d -p 8080:80 image_name
# Run a container with a custom name
docker run -d --name my_container image_nameПросмотр логов и статистики
# View container logs
docker logs container_id
# Follow live log output
docker logs -f container_id
# View real-time resource usage
docker statsШаг 9: Подтвердите запуск Docker при загрузке
Docker должен быть уже настроен на запуск при загрузке после выполнения systemctl enable docker. Чтобы перепроверить или повторно включить это поведение:
sudo systemctl enable dockerЧтобы отключить автоматический запуск (например, на машине разработки, где Docker не всегда нужен):
sudo systemctl disable dockerШаг 10: Расширенная конфигурация (опционально)
Установка Docker Compose
Docker Compose — это важный инструмент для определения и управления приложениями с несколькими контейнерами с использованием простого файла конфигурации YAML. Установите последнюю стабильную версию:
sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.0/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 вы можете определить целые стеки приложений — веб-серверы, базы данных, кэши — в одном файле docker-compose.yml и запустить их все одной командой: docker-compose up -d.
Конфигурация демона Docker
Вы можете настроить поведение Docker, отредактировав (или создав) файл конфигурации демона:
sudo nano /etc/docker/daemon.jsonПример общей конфигурации:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"storage-driver": "overlay2",
"default-address-pools": [
{"base": "172.17.0.0/16", "size": 24}
]
}После редактирования конфигурации демона перезагрузите Docker, чтобы применить изменения:
sudo systemctl restart dockerОбщие параметры демона, которые вы можете настроить:
- Драйвер логирования и ротация — Предотвратите заполнение дискового пространства логами контейнеров
- Драйвер хранилища —
overlay2— рекомендуемый драйвер для CentOS - Параметры DNS — Установите пользовательские DNS-серверы для контейнеров
- Зеркала реестра — Ускорьте загрузку образов с помощью локальных зеркал
Конфигурация правил брандмауэра (CentOS 7)
Если вы используете firewalld, вам может потребоваться разрешить сетевой трафик Docker:
sudo firewall-cmd --zone=public --add-masquerade --permanent
sudo firewall-cmd --reloadВыбор правильной среды хостинга для Docker
Запуск Docker в production требует надежной, высокопроизводительной серверной среды. Вот лучшие варианты в зависимости от вашего случая использования:
- VPS Hosting — Идеален для большинства развертываний Docker. Полный root доступ, масштабируемые ресурсы и экономичное ценообразование делают VPS идеальным выбором для контейнеризованных приложений.
- Dedicated Servers — Лучший вариант для высоконагруженных production окружений или когда вам нужна максимальная производительность CPU, RAM и хранилища для одновременного запуска десятков контейнеров.
- GPU Hosting — Идеален для рабочих нагрузок AI/ML, работающих внутри Docker контейнеров, которым требуется GPU ускорение для обучения моделей или вывода.
- VPS с cPanel — Если вам нужен Docker вместе с удобной панелью управления для управления веб-сайтами и электронной почтой, эта комбинация предлагает лучшее из обоих миров.
Устранение распространенных проблем Docker на CentOS
Демон Docker не запускается
Проверьте системные журналы для получения сведений об ошибках:
journalctl -u docker --no-pager | tail -50Ошибки отказа в доступе
Если вы видите Got permission denied while trying to connect to the Docker daemon socket, убедитесь, что ваш пользователь находится в группе docker и что вы вышли и снова вошли.
Невозможно загрузить образы
Убедитесь, что ваш сервер имеет исходящий доступ в Интернет и что DNS правильно разрешает имена:
curl -I https://registry-1.docker.ioПроблемы с сетью контейнера
Перезагрузите Docker для переинициализации сетевых мостов:
sudo systemctl restart dockerЗаключение
Вы успешно установили Docker на CentOS и имеете прочную основу для работы с контейнерами. Вот краткое резюме того, что было рассмотрено:
- ✅ Обновлена система и установлены зависимости
- ✅ Добавлен официальный репозиторий Docker
- ✅ Установлен Docker CE и проверена установка
- ✅ Настроен Docker для запуска при загрузке
- ✅ Настроен доступ для непривилегированного пользователя
- ✅ Изучены основные команды Docker
- ✅ Установлен Docker Compose для управления многоконтейнерными приложениями
- ✅ Изучены параметры конфигурации демона
Docker на CentOS открывает мир возможностей — от запуска изолированных сред разработки до развертывания масштабируемых архитектур микросервисов в production. Навыки контейнеризации, которые вы здесь приобретете, послужат основой для более продвинутых тем, таких как оркестрация Kubernetes, CI/CD pipelines и разработка облачных приложений.
Для лучшего опыта работы с Docker убедитесь, что ваша серверная среда соответствует требованиям. Изучите планы VPS Hosting AlexHost для мощной, надежной и доступной основы всех ваших контейнеризованных рабочих нагрузок.
на всех хостинговых услугах