Як встановити Docker на CentOS: Повний покроковий посібник
Docker принципово змінив те, як розробники створюють, розповсюджують та запускають додатки. Упаковуючи програмне забезпечення в легкі, портативні контейнери, Docker усуває класичну проблему "це працює на моїй машині" та значно спрощує як робочі процеси розробки, так і розгортання в продакшені. Якщо ви запускаєте 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
Ви повинні побачити вихідні дані, що вказують на те, що служба активна (запущена). Якщо статус показує будь-які помилки, перегляньте журнали системи за допомогою 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 у продакшені вимагає надійного, високопродуктивного серверного середовища. Ось найкращі варіанти залежно від вашого випадку використання:
- VPS Hosting — Ідеально для більшості розгортань Docker. Повний root-доступ, масштаб
