Встановлення Docker на Linux: Ubuntu, Debian, RHEL | INTROSERV
EUR
european

EUR

usa

USD

Ukraine Ua
Ex. VAT Ex. VAT 0%

Встановлення Docker на популярні дистрибутиви Linux: посібник зі встановлення Docker на Linux

Рівень: Середній
Очікуваний час: ~15 хвилин
Мета: Налаштувати безпечне, децентралізоване середовище шляхом встановлення Docker для самостійного хостингу особистих сервісів, таких як Nextcloud, Bitwarden та Matrix.

Вступ

Самостійний хостинг власних "Хмарних" сервісів гарантує конфіденційність та повне володіння даними. Щоб розгортати сервіси, такі як Nextcloud (для зберігання файлів), Bitwarden (для керування паролями) або Matrix (для безпечного спілкування) без зайвого клопоту зі складними залежностями на рівні хоста, вам потрібні ізольовані середовища. У цьому посібнику ми розглянемо, як встановити Docker на Linux, щоб створити надійну, відтворювану основу для самостійного хостингу. Незалежно від того, чи потрібне вам повне налаштування Docker на Linux для одного сервера чи цілого парку машин, кожен крок нижче застосовний до Ubuntu, Debian та RHEL-сумісних дистрибутивів. Наприкінці цього посібника зі встановлення Docker на Linux ви отримаєте готове до продуктивної експлуатації середовище з налаштованими за найкращими практиками параметрами безпеки.

Термінологія

Перед тим, як продовжити, переконайтеся, що ви розумієте ці основні концепції:

  • Docker: Платформа для розробки, доставки та запуску додатків в ізольованих середовищах.
  • Docker Engine: Основна клієнт-серверна технологія, яка створює та запускає контейнери.
  • Контейнер (Container): Стандартизований, виконуваний компонент, що поєднує вихідний код програми з бібліотеками операційної системи та залежностями, необхідними для її запуску.
  • Образ (Image): Шаблон лише для читання з інструкціями для створення контейнера.
  • Демон Docker (Docker daemon): Фонова служба, що працює на хості, яка керує збіркою, запуском та розповсюдженням контейнерів.
  • Docker CLI: Інтерфейс командного рядка, який використовується для взаємодії з демоном.
  • Docker Hub: Публічний реєстр, який підтримується Docker, для пошуку та обміну образами контейнерів.
  • Реєстр (Registry): Система зберігання та розповсюдження образів контейнерів.
  • Встановлення (Installation): Процес підготовки програм до виконання.
  • Менеджер пакетів (Package manager): Програмний інструмент, що автоматизує встановлення, оновлення, налаштування та видалення програм.
  • Репозиторій (Repository): Централізоване місце, де зберігаються та підтримуються пакети програмного забезпечення.
  • Офіційний репозиторій Docker (Official Docker repository): Надійне джерело, яке підтримується Docker, для отримання стабільних пакетів програмного забезпечення.
  • Пакет (Package): Стиснений архів, що містить усі файли, які постачаються з певним додатком.
  • Залежність (Dependency): Програма або бібліотека, необхідна іншій програмі для належного функціонування.
  • Стабільний реліз (Stable release): Версія програмного забезпечення, яка пройшла ретельне тестування і вважається надійною для використання у виробничому середовищі.
  • Версія (Version): Унікальний стан програмного забезпечення, що відображає його специфічні функції та виправлення.

Попередні вимоги

Перед початком роботи переконайтеся, що виконані такі умови:

  • Операційна система: Ubuntu 20.04/22.04/24.04 LTS, Debian 11/12/13 або RHEL-сумісні (AlmaLinux, Rocky, RHEL) 8/9/10
  • Доступ: sudo або root-доступ до сервера
  • Необхідні знання: впевнене користування командним рядком Linux

Крок 1: Налаштування репозиторію Docker

Щоб гарантовано отримати останній безпечний і стабільний реліз, завжди використовуйте Офіційний репозиторій Docker, а не стандартні репозиторії ОС.

Для Ubuntu:

Спочатку оновіть індекс вашого менеджера пакетів Linux і встановіть необхідні пакети, щоб дозволити apt використовувати репозиторій через HTTPS:

sudo apt update sudo apt install ca-certificates curl gnupg lsb-release

Додайте офіційний GPG-ключ Docker:

sudo mkdir -m 0755 -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \ sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

Налаштуйте стабільний репозиторій:

echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Для Debian:

Кроки для встановлення Docker на Debian повторюють процес Ubuntu, але використовують URL-адресу репозиторію, специфічну для Debian. Спочатку оновіть індекс вашого менеджера пакетів Linux і встановіть необхідні пакети:

sudo apt update sudo apt install ca-certificates curl gnupg lsb-release

Додайте офіційний GPG-ключ Docker:

sudo mkdir -m 0755 -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg | \ sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

Налаштуйте стабільний репозиторій:

echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/debian $(lsb_release -cs) stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Для RHEL-сумісних (AlmaLinux, Rocky, RHEL):

Встановіть пакет yum-utils та налаштуйте стабільний репозиторій:

sudo yum install -y yum-utils sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo

Info

Docker публікує пакети для всіх RHEL-сумісних дистрибутивів (включно з AlmaLinux і Rocky Linux) за шляхом репозиторію centos. Використання цієї URL-адреси є очікуваним і повністю підтримується.

Результат: Репозиторій Docker тепер додано до вашої системи, що дозволяє менеджеру пакетів отримувати останні пакети Docker.

Крок 2: Встановлення Docker на Ubuntu та Debian

Коли репозиторій Docker налаштовано, перейдіть до встановлення Docker Engine на Ubuntu або Debian - команди ідентичні. Цей крок застосовується до обох дистрибутивів.

Спочатку видаліть будь-які конфліктні пакети, що надаються репозиторіями ОС:

sudo apt remove docker.io podman-docker containerd runc

Знову оновіть індекс пакетів apt і скористайтеся менеджером пакетів Linux для встановлення необхідних компонентів:

sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin \ docker-compose-plugin

Результат: Команда виконується, отримуючи пакети та будь-які необхідні залежності з репозиторію Docker. Ви повинні побачити, як менеджер пакетів успішно завершує встановлення Docker Engine без помилок.

Info

docker-ce - це Docker Community Edition, безкоштовна версія, ідеальна для тих, хто хостить сервіси самостійно.

Крок 3: Встановлення Docker на RHEL-сумісних (AlmaLinux, Rocky, RHEL)

Для систем на базі RHEL використовуйте yum для встановлення Docker Engine.

Спочатку видаліть будь-які конфліктні пакети, що надаються репозиторіями ОС:

sudo yum remove docker docker-client docker-client-latest docker-common \ docker-latest docker-latest-logrotate docker-logrotate docker-engine \ podman runc

Виконайте таку команду:

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin \ docker-compose-plugin

Результат: Менеджер пакетів встановлює необхідні пакети. Вас попросять прийняти GPG-ключ (якщо ви не передали прапорець -y); підтвердіть це. Після завершення ви побачите повідомлення про успішне встановлення.

Крок 4: Перевірка встановлення Docker Engine

Після встановлення поведінка демона Docker відрізняється залежно від дистрибутива. В Ubuntu та Debian docker.service запускається автоматично після встановлення. В дистрибутивах сімейства RHEL - ні.

Warning

Тільки для RHEL-сімейства: Якщо в процесі встановлення оновлювалося ядро (наприклад, через залежність kernel-core), перезавантажте сервер перед запуском служби Docker:

sudo reboot

Якщо пропустити цей крок, команда systemctl start docker може завершитися помилкою br_netfilter / addrtype, оскільки запущене ядро не відповідає встановленим модулям.

Коли сервер працює на актуальному ядрі, запустіть і увімкніть службу. Наступні команди ідемпотентні та безпечні для виконання на всіх системах:

sudo systemctl start docker sudo systemctl enable docker

Результат: Демон Docker запускається, і система створює символічне посилання (symlink), щоб забезпечити його автоматичний запуск при кожному перезавантаженні.

Переконайтеся, що встановлення Docker Engine пройшло успішно, запустивши образ hello-world:

sudo docker run hello-world

Результат: Docker CLI зв'язується з демоном Docker, завантажує образ hello-world з Docker Hub та запускає контейнер. У вашому терміналі має з'явитися повідомлення "Hello from Docker!".

Крок 5: Кроки після встановлення Docker

За замовчуванням для виконання команд Docker потрібен sudo. Щоб запускати команди Docker як користувач без прав root, вам потрібно додати свого користувача до групи docker. Це важливі кроки після встановлення Docker для зручного керування вашою інфраструктурою самостійного хостингу.

Створіть групу docker (якщо вона ще не існує):

getent group docker || sudo groupadd docker

Додайте свого користувача до групи docker:

sudo usermod -aG docker $USER

Результат: Ваш користувач доданий до групи. Щоб зміни набули чинності, ви повинні вийти з системи та знову увійти, або активувати нове членство в групі у поточній сесії:

newgrp docker

Info

newgrp docker створює нову оболонку з оновленим членством у групі. Будь-яка команда docker, виконана після цього, працюватиме без sudo, але лише в цій новій оболонці. Відкриття іншого терміналу все ще потребує повного повторного входу.

Warning

Членство в групі docker надає привілеї, еквівалентні root-доступу до хоста. Для середовищ самостійного хостингу, де пріоритетом є безпека, серйозно розгляньте запуск Docker у режимі rootless (див. Крок 6).

Після виконання newgrp docker (або повторного входу в систему) перевірте конфігурацію, виконавши команду без sudo:

docker run hello-world

Результат: Ви знову повинні побачити повідомлення "Hello from Docker!", що підтверджує успішність ваших кроків після встановлення Docker.

Альтернатива: Швидке встановлення за допомогою зручного скрипту

Для тестових середовищ або середовищ розробки Docker надає зручний скрипт (convenience script).

Warning

Цей метод не рекомендується для продакшену. Він виконується без фіксації версій, виконує безумовне оновлення, якщо Docker уже встановлено, і завантажує всі залежності без перевірки.

Рекомендується завантажити скрипт та перевірити його перед виконанням:

curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh

Крок 6 (Опціонально): Запуск Docker у режимі rootless

Для середовищ самостійного хостингу запуск Docker без прав root (rootless) підвищує безпеку, виконуючи демона Docker та контейнери від імені звичайного користувача.

6.1 Попередні вимоги

Спочатку зупиніть та вимкніть загальносистемну службу та сокет Docker, а також видаліть файл сокета:

sudo systemctl stop docker.service docker.socket sudo systemctl disable docker.service docker.socket sudo rm -f /var/run/docker.sock

Переконайтеся, що ваш користувач має налаштовані subuid та subgid (зазвичай налаштовується автоматично):

cat /etc/subuid cat /etc/subgid

Увімкніть linger для вашого користувача, щоб демон міг запускатися під час завантаження системи:

sudo loginctl enable-linger $USER

6.2 Встановлення додаткових пакетів

Для Ubuntu/Debian:

sudo apt install docker-ce-rootless-extras uidmap dbus-user-session

Для AlmaLinux/RHEL (shadow-utils надає uidmap і зазвичай вже встановлений):

sudo yum install docker-ce-rootless-extras

6.3 Встановлення демона rootless

Запустіть скрипт налаштування з повноцінної користувацької сесії цільового користувача (не з sudo su або non-login SSH-сесії). Якщо ви перебуваєте в non-login контексті, спочатку експортуйте необхідні змінні:

export XDG_RUNTIME_DIR=/run/user/$(id -u) export DBUS_SESSION_BUS_ADDRESS=unix:path=$XDG_RUNTIME_DIR/bus

Потім запустіть скрипт налаштування:

dockerd-rootless-setuptool.sh install

Info

Перший запуск скрипта налаштування одразу після ввімкнення linger може бути нестабільним. Якщо демон не запускається, просто запустіть скрипт установки ще раз.

6.4 Налаштування змінних середовища

Додайте наступні змінні до конфігураційного файлу вашої оболонки (наприклад, ~/.bashrc):

export PATH=/usr/bin:$PATH export DOCKER_HOST=unix:///run/user/$(id -u)/docker.sock

Виконайте source для файлу або перезапустіть оболонку, щоб застосувати зміни.

6.5 Обмеження режиму rootless

  • Неможливо публікувати порти < 1024 (Docker надає обхідні шляхи, такі як setcap, прокидання портів slirp4netns або маршрутизацію).
  • Немає підтримки --net=host.
  • Режим Swarm та overlay-мережі не підтримуються.
  • AppArmor не підтримується.
  • Прапорець --privileged не надає root-доступ на рівні хоста.
  • Дані зберігаються у ~/.local/share/docker (враховуйте це для резервного копіювання та квот).
  • Потрібен cgroup v2.
  • Використовує драйвер сховища overlayfs замість overlay2.

Відкат (Rollback)

Якщо вам потрібно скасувати встановлення Docker на Linux - будь то стандартна конфігурація Docker для Linux чи rootless-конфігурація - виконайте наведені нижче кроки в зазначеному порядку.

1. Відкат режиму rootless (пропустіть, якщо rootless не налаштовувався):

Якщо ви налаштували режим rootless, скасуйте ці зміни в першу чергу, до видалення пакетів:

dockerd-rootless-setuptool.sh uninstall rm -rf ~/.local/share/docker sudo loginctl disable-linger $USER

Info

Запуск rootless-деінсталяції після видалення пакетів завершиться помилкою, оскільки скрипт налаштування є частиною пакета docker-ce-rootless-extras. Завжди видаляйте rootless-режим, поки пакети ще встановлені.

2. Видалення пакетів:

Debian/Ubuntu:

sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin \ docker-compose-plugin docker-ce-rootless-extras sudo rm -rf /var/lib/docker /var/lib/containerd sudo rm -f /etc/apt/sources.list.d/docker.list /etc/apt/keyrings/docker.gpg

AlmaLinux/Rocky/RHEL:

sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin \ docker-compose-plugin docker-ce-rootless-extras sudo rm -rf /var/lib/docker /var/lib/containerd sudo rm -f /etc/yum.repos.d/docker-ce.repo

3. Видалення групи:

sudo groupdel docker || true

Warning

Видалення пакетів не видаляє автоматично образи, контейнери, томи чи змінені конфігураційні файли. Команди rm -rf безповоротно видаляють ці каталоги з даними.

Висновок

Ваше встановлення Docker на Linux завершене та перевірене. Основа тепер налаштована безпечно. Ви можете переходити до розгортання контейнерів для ваших інструментів самостійного хостингу, забезпечуючи повний контроль над вашими файлами Nextcloud, сховищами паролів Bitwarden та комунікаціями Matrix.

Версія документа: 1.0
Останнє оновлення: Травень 2026
Відповідальний: Команда технічної документації

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA