15%

Збережіть 15% на всі хостинг-послуги

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

Використовуй код:

Skills
Почати
31.10.2024
1 +1

Як встановити 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-доступ, масштаб
    15%

    Збережіть 15% на всі хостинг-послуги

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

    Використовуй код:

    Skills
    Почати