Як встановити Docker на Ubuntu
На цій сторінці
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, а згодом можете перейти на більший тариф, коли ваших контейнерів побільшає.
Поширені запитання
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Цей гайд був корисним?