Заощадьте 15% на всіх хостингових послугах

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код: Skills Почати
Рубрики
Linux Адміністрація

Як встановити 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 docker
    systemctl 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-доступ, масштабовані ресурси та економічні ціни роблять VPS найкращим вибором для контейнеризованих додатків.
    • Dedicated Servers — Найкраще для високонавантажених виробничих середовищ або коли вам потрібна максимальна продуктивність CPU, RAM та сховища для одночасного запуску десятків контейнерів.
    • GPU Hosting — Ідеально для робочих навантажень AI/ML, які запускаються всередині Docker контейнерів та потребують GPU прискорення для навчання моделей або висновків.
    • VPS з cPanel — Якщо вам потрібен Docker разом із зручною панеллю керування для управління веб-сайтами та електронною поштою, це поєднання пропонує найкраще з обох світів.

    Усунення типових проблем Docker на CentOS

    Docker Daemon не запускається

    Перевірте системні журнали на деталі помилок:

    journalctl -u docker --no-pager | tail -50

    Помилки Permission Denied

    Якщо ви бачите 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 і маєте міцну основу для роботи з контейнерами. Ось короткий огляд того, що було розглянуто:

    1. ✅ Оновлено систему та встановлено залежності
    2. ✅ Додано офіційний репозиторій Docker
    3. ✅ Встановлено Docker CE та перевірено встановлення
    4. ✅ Налаштовано Docker для запуску при завантаженні
    5. ✅ Налаштовано доступ для користувача без прав root
    6. ✅ Вивчено основні команди Docker
    7. ✅ Встановлено Docker Compose для управління багатоконтейнерними додатками
    8. ✅ Досліджено параметри конфігурації демона

    Docker на CentOS відкриває світ можливостей — від запуску ізольованих середовищ розробки до розгортання масштабованих архітектур мікросервісів у виробництві. Навички контейнеризації, які ви набудете тут, послужать основою для більш складних тем, таких як оркестрація Kubernetes, конвеєри CI/CD та розробка хмарних додатків.

    Для найкращого досвіду роботи з Docker переконайтеся, що ваше серверне середовище відповідає завданню. Дослідіть плани VPS Hosting AlexHost для потужної, надійної та доступної основи для всіх ваших контейнеризованих робочих навантажень.