Как установить 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 для backend хранилища Docker |
Эти зависимости гарантируют, что Docker может эффективно и надежно управлять хранилищем контейнеров в вашей системе CentOS.
Шаг 3: Добавление официального репозитория Docker
Репозитории по умолчанию CentOS не включают последние пакеты Docker. Вам нужно добавить официальный репозиторий Docker, чтобы получить самый актуальный, стабильный релиз:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repoЭта команда добавляет официальный репозиторий CentOS Docker в список репозиториев вашей системы. Использование официального источника гарантирует, что вы получите подлинные, актуальные пакеты 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 (среда выполнения контейнера) вместе с основным движком для полной, готовой к production установки.
Это устанавливает Docker Community Edition (CE) — бесплатную версию Docker с открытым исходным кодом, которая идеально подходит как для разработки, так и для production рабочих нагрузок.
Шаг 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. Добавляйте только доверенных пользователей в эту группу в production окружениях.
Шаг 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 и хранилища для одновременного запуска десятков контейнеров.
