VPS · Гайд

Як встановити Docker на Ubuntu

Оновлено October 11, 2026 4 хв читання

На цій сторінці
  1. Перед початком
  2. Крок 1: видаліть конфліктні пакети
  3. Крок 2: додайте репозиторій Docker
  4. Крок 3: встановіть Docker і Compose
  5. Крок 4: права доступу та ротація логів
  6. Перший файл Compose
  7. Docker і ufw: пастка фаєрвола
  8. Docker на VPS від HytHost
  9. FAQ

Docker запускає застосунки в контейнерах: кожен містить усе потрібне, тож працює однаково і на ноутбуці, і на сервері. Сайти, бази даних, боти та ігрові сервери запускаються однією командою або одним файлом Compose.

У цьому посібнику ми встановимо Docker Engine і Docker Compose на Ubuntu 24.04 або 22.04 з офіційного репозиторію Docker, а потім розберемо налаштування, важливі на реальному сервері: права доступу, логи та фаєрвол.

Перед початком

  • Підтримувана Ubuntu: Docker підтримує 64-бітні версії Ubuntu 26.04, 24.04 і 22.04 LTS. Перевірте свою командою cat /etc/os-release.
  • Сервер на KVM, а не контейнер: Docker потрібні власні можливості ядра. Він працює на будь-якому VPS на KVM, але часто не запускається на контейнерних тарифах (OpenVZ або LXC).
  • Root або користувач із sudo. Команди нижче використовують sudo; якщо ви увійшли як root, його можна пропустити.

На серверах не використовуйте пакет docker.io з репозиторію Ubuntu та версію зі Snap: у репозиторій Docker нові версії потрапляють першими, і саме його використовує офіційна документація Docker.

Docker потрібна справжня віртуальна машина: тарифи HytHost KVM VPS з Ubuntu та повним root-доступом — від €2.92/міс.

Тарифи VPS

Крок 1: видаліть конфліктні пакети

Якщо ви раніше встановлювали Docker з іншого джерела, спершу видаліть ці пакети. На свіжому сервері apt просто повідомить, що жоден із них не встановлено:

sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc docker-buildx podman-docker containerd runc | cut -f1)

Образи й томи в /var/lib/docker/ при цьому не видаляються.

Крок 2: додайте репозиторій Docker

Ці команди з документації Docker додають ключ підпису Docker і його apt-репозиторій для вашої версії Ubuntu:

sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

sudo apt update

Крок 3: встановіть Docker і Compose

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

Так встановлюються Docker Engine, консольна утиліта, збирач Buildx і плагін Compose. Перевірте, що все працює:

sudo docker run hello-world
docker compose version

Перша команда завантажує крихітний тестовий образ і виводить вітальне повідомлення. В Ubuntu Docker запускається автоматично під час завантаження, тож вмикати нічого не потрібно.

Compose — це команда docker compose, через пробіл. Стара docker-compose через дефіс — це застаріла перша версія; посібники, які досі її використовують, працюють і з новою командою.

Крок 4: права доступу та ротація логів

Запуск docker без sudo. Додайте свого користувача до групи docker, потім вийдіть і увійдіть знову:

sudo usermod -aG docker $USER

Майте на увазі: сам Docker попереджає, що ця група дає привілеї рівня root — будь-хто з її учасників може керувати всім сервером. Додавайте лише тих, кому ви довірили б root.

Обмежте розмір логів. За замовчуванням логи контейнерів ростуть без обмежень і можуть заповнити диск. Створіть /etc/docker/daemon.json:

{
  "log-driver": "json-file",
  "log-opts": { "max-size": "10m", "max-file": "3" }
}

Потім виконайте sudo systemctl restart docker. Обмеження діє для контейнерів, створених після зміни, тому створіть наявні заново.

Перший файл Compose

Compose описує ваші контейнери в одному файлі. Створіть папку з файлом compose.yaml:

services:
  web:
    image: nginx:stable
    ports:
      - "127.0.0.1:8080:80"
    restart: unless-stopped

Запустіть його командою docker compose up -d, перевірте стан через docker compose ps і перегляньте логи через docker compose logs. restart: unless-stopped піднімає контейнер після збою чи перезавантаження. Порт прив'язано до 127.0.0.1 навмисно — чому, пояснює наступний розділ.

Docker і ufw: пастка фаєрвола

На цьому потрапляють майже всі. Коли ви публікуєте порт, наприклад -p 8080:80, Docker додає власні правила фаєрвола, які застосовуються раніше за правила ufw. Порт відкритий в інтернет, навіть якщо ufw показує, що він закритий.

  • Прив'язуйте порти до localhost, якщо вони потрібні лише самому серверу, наприклад базі даних чи застосунку за reverse proxy: 127.0.0.1:8080:80.
  • Взагалі не публікуйте порти баз даних; нехай контейнери зв'язуються між собою через мережу Docker.
  • Для фільтрації за адресою джерела додавайте правила до ланцюжка iptables DOCKER-USER, який Docker перевіряє раніше за власні.

Те саме стосується ігрових серверів, запущених у Docker; див. як налаштувати VPS для ігрових серверів.

Docker на VPS від HytHost

VPS-тарифи HytHost працюють на KVM, тому кожен VPS має власне ядро, і Docker запускається без обмежень. Оберіть Ubuntu 24.04 або 22.04 під час замовлення, підключіться по SSH і виконайте кроки вище. Ви отримуєте повний root-доступ, SSD-сховище та захист від DDoS, а згодом можете перейти на більший тариф, коли ваших контейнерів побільшає.

FAQ

Поширені запитання

Docker підтримує 64-бітні версії Ubuntu 26.04, 24.04 і 22.04 LTS. Інші системи на базі Ubuntu, наприклад Linux Mint, офіційно не підтримуються.

Не на робочому сервері. Docker зазначає, що цей скрипт призначений для середовищ розробки й не рекомендований для продакшену; до того ж він може перескочити на нову мажорну версію. Використовуйте натомість спосіб із репозиторієм.

docker-compose через дефіс — стара, застаріла версія. Сьогодні Compose — це плагін Docker, який викликається як docker compose і встановлюється пакетом docker-compose-plugin.

Порти, опубліковані Docker, обходять ufw. Прив'яжіть порт до 127.0.0.1, якщо він має лишатися локальним, або фільтруйте його в ланцюжку DOCKER-USER.

На VPS з KVM — так. Контейнерні VPS-тарифи, наприклад OpenVZ, часто не можуть запускати Docker або потребують особливих налаштувань від провайдера.

Запускайте контейнери на VPS

Тарифи HytHost KVM VPS запускають Docker без обмежень, з повним root-доступом і Ubuntu 24.04, від €2.92/міс.

Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hours

Цей гайд був корисним?