core code helper

Як встановити Docker на Ubuntu, Windows і macOS: покрокова інструкція

Встановлення Docker Engine на Ubuntu з офіційного репозиторію, Docker Desktop на Windows (WSL 2) і macOS, запуск без sudo, перевірка й розбір типових помилок.

0 імпортували Імпортувати собі

Docker дозволяє запустити базу даних, вебсервер чи цілий проєкт однією командою, без «у мене працює, а в тебе ні». У цій інструкції — як встановити Docker правильно: на Ubuntu (сервер чи робоча машина), на Windows через WSL 2 і на macOS. Наприкінці — перевірка, налаштування після встановлення й розбір помилок, на які натрапляють найчастіше.

Актуальність

Інструкцію звірено з офіційною документацією Docker у жовтні 2026 року: Docker Engine 29.x, Ubuntu 22.04, 24.04, 26.04 LTS і 26.10.

Коротко: що саме ми встановлюємо

Слово «Docker» означає кілька різних речей, і через це плутанина в інструкціях:

  • Docker Engine — сам двигун: фоновий сервіс dockerd, який завантажує образи й запускає контейнери. На Linux це все, що потрібно.
  • Docker CLI — команда docker, якою ви керуєте двигуном.
  • Docker Compose — плагін docker compose для запуску кількох контейнерів з одного файлу compose.yaml.
  • Docker Desktop — застосунок для Windows і macOS (є і для Linux), який усередині легкої віртуальної машини запускає той самий Docker Engine і додає графічний інтерфейс.

Схема: клієнт docker передає команду демону dockerd, той бере образ із кешу або реєстру, а containerd і runc запускають контейнер

Контейнер — це звичайний процес на вашій машині, ізольований засобами ядра Linux (namespaces і cgroups). Саме тому на Windows і macOS потрібна віртуалка з Linux: їхні ядра цього не вміють.

Що обрати

Ваша система Що встановлювати Примітка
Ubuntu / Debian, сервер Docker Engine з репозиторію Docker Без графічного інтерфейсу, найменше накладних витрат
Ubuntu, робочий ноутбук Docker Engine (або Docker Desktop) Engine простіший і швидший
Windows 10/11 Docker Desktop + WSL 2 Контейнери працюють у Linux-середовищі WSL
macOS (Apple Silicon або Intel) Docker Desktop Альтернативи: OrbStack, Colima
Ліцензія Docker Desktop

Docker Engine — відкритий і безкоштовний. Docker Desktop безкоштовний для особистого використання, навчання, некомерційних open source-проєктів і компаній, у яких менше 250 працівників і менше 10 млн доларів річного доходу. Більшим компаніям потрібна платна підписка.

Встановлення Docker на Ubuntu

Спосіб нижче — офіційний: пакети з репозиторію Docker. Так ви отримуєте свіжу версію, плагіни buildx і compose та оновлення через звичайний apt upgrade.

Крок 1. Перевірте версію Ubuntu

cat /etc/os-release

Підтримуються 64-бітні Ubuntu 26.10, 26.04 LTS, 24.04 LTS і 22.04 LTS на архітектурах amd64, arm64, armhf, s390x і ppc64le. Linux Mint та інші похідні офіційно не підтримуються, але команди нижче зазвичай працюють і там: вони беруть кодову назву «батьківської» Ubuntu зі змінної UBUNTU_CODENAME.

Крок 2. Видаліть конфліктні пакети

Якщо раніше ставили Docker зі стандартного репозиторію Ubuntu (docker.io) або Podman, приберіть їх — інакше пакети конфліктуватимуть:

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/ ця команда не чіпає.

Крок 3. Підключіть репозиторій Docker

Спершу ключ, яким підписані пакети:

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

Потім сам репозиторій у сучасному форматі .sources:

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
Що тут відбувається

Suites підставляє кодову назву вашої системи (noble, resolute…), а Architectures — архітектуру процесора. Тож той самий блок працює і на ноутбуці, і на ARM-сервері.

Крок 4. Встановіть Docker

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

Після встановлення сервіс запускається автоматично. Перевірте:

sudo systemctl status docker

У рядку Active має бути active (running). Якщо ні — запустіть вручну: sudo systemctl start docker.

Крок 5. Перевірте роботу

sudo docker run hello-world

Docker завантажить крихітний тестовий образ, запустить контейнер і виведе Hello from Docker!. Якщо ви це бачите — все встановлено правильно.

Як встановити конкретну версію Docker

Подивіться доступні версії й підставте потрібну:

apt list --all-versions docker-ce
VERSION_STRING=5:29.8.2-1~ubuntu.24.04~noble
sudo apt install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin

Щоб apt upgrade не оновив Docker без вашого відома, зафіксуйте пакети: sudo apt-mark hold docker-ce docker-ce-cli.

Налаштування після встановлення (Linux)

Запуск docker без sudo

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

sudo groupadd docker          # група зазвичай уже є — помилку можна ігнорувати
sudo usermod -aG docker $USER
newgrp docker                 # або вийдіть із системи й зайдіть знову
docker run hello-world        # тепер без sudo
Група docker = права root

Будь-хто в групі docker може змонтувати в контейнер усю файлову систему хоста й отримати повний доступ до машини. На спільних серверах додавайте до групи лише тих, кому довіряєте як адміністратору. Безпечніша альтернатива — rootless-режим Docker.

Автозапуск після перезавантаження

На Ubuntu він уже ввімкнений. Якщо ні:

sudo systemctl enable docker.service containerd.service

Обмежте розмір логів

Драйвер логів за замовчуванням (json-file) не обрізає файли, і контейнер, що активно пише в stdout, за кілька тижнів може заповнити диск. Створіть /etc/docker/daemon.json:

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

Налаштування діє для нових контейнерів — наявні треба перестворити.

Порти Docker обходять UFW

Це найнеприємніший сюрприз для новачків. Якщо запустити docker run -p 5432:5432 postgres, порт 5432 стане доступним з інтернету, навіть якщо UFW його блокує: Docker додає власні правила iptables раніше за правила UFW.

Якщо сервіс потрібен лише на самому сервері, прив'яжіть порт до localhost:

docker run -d -p 127.0.0.1:5432:5432 -e POSTGRES_PASSWORD=secret postgres:18

Для власних правил фаєрвола Docker радить ланцюжок DOCKER-USER в iptables.

Встановлення Docker на Windows 10 і 11

На Windows Docker працює через WSL 2 — вбудовану в Windows підсистему з реальним ядром Linux.

Вимоги

  • Windows 11 23H2 або новіша чи Windows 10 22H2 (збірка 19045).
  • 64-бітний процесор із підтримкою віртуалізації (SLAT), 8 ГБ оперативної пам'яті.
  • Увімкнена віртуалізація в BIOS/UEFI. Перевірити: Диспетчер завдань → Продуктивність → ЦП → рядок «Віртуалізація: Увімкнено».

Windows Home теж підходить — для Linux-контейнерів через WSL 2. Windows-контейнери потребують редакції Pro або Enterprise, але на практиці вони потрібні рідко.

Крок 1. Встановіть WSL 2

Відкрийте PowerShell від імені адміністратора:

wsl --install

Команда ввімкне потрібні компоненти й поставить Ubuntu. Перезавантажте комп'ютер. Якщо WSL уже був, оновіть його: wsl --update.

Крок 2. Встановіть Docker Desktop

Завантажте інсталятор з docker.com і запустіть Docker Desktop Installer.exe. На сторінці налаштувань залиште позначку Use WSL 2 instead of Hyper-V. Після встановлення запустіть Docker Desktop і прийміть умови використання — без цього він не стартує.

Те саме з командного рядка через winget:

winget install -e --id Docker.DockerDesktop

Крок 3. Перевірте

У PowerShell або терміналі WSL:

docker version
docker run hello-world
Скільки пам'яті забирає WSL

Віртуалка WSL може займати значну частину RAM. Обмежте її у файлі %UserProfile%\.wslconfig:

[wsl2]
memory=6GB
processors=4

Потім виконайте wsl --shutdown і перезапустіть Docker Desktop.

Порада щодо швидкості: тримайте код проєктів усередині файлової системи WSL (\\wsl$\Ubuntu\home\...), а не на C:\. Монтування з Windows у контейнер помітно повільніше, особливо для node_modules.

Встановлення Docker на macOS

  1. Завантажте Docker Desktop з docker.com — для свого процесора: Apple Silicon (M1–M5) або Intel. Перевірити: меню Apple → «Про цей Mac» → рядок «Чип».
  2. Відкрийте .dmg і перетягніть Docker у «Програми».
  3. Запустіть Docker, прийміть умови й дочекайтеся, поки іконка кита в рядку меню перестане анімуватися.
  4. Перевірте в терміналі: docker run hello-world.

На Mac з Apple Silicon образи для linux/amd64 теж запускаються — через емуляцію, повільніше. Якщо є вибір, беріть образи з підтримкою arm64: усі популярні офіційні образи (postgres, nginx, node, python) її мають.

Перший справжній контейнер

hello-world лише показує, що все працює. Запустімо вебсервер:

docker run -d --name web -p 8080:80 nginx

Відкрийте http://localhost:8080 — побачите вітальну сторінку nginx. Що означають прапорці:

  • -d — запустити у фоні;
  • --name web — дати контейнеру зручне ім'я;
  • -p 8080:80 — порт 8080 вашої машини веде на порт 80 у контейнері.

Базові команди, які знадобляться щодня:

Команда Що робить
docker ps працюючі контейнери (-a — разом зі зупиненими)
docker logs -f web логи контейнера в реальному часі
docker exec -it web sh відкрити оболонку всередині контейнера
docker stop web / docker start web зупинити / запустити
docker rm -f web видалити контейнер
docker images завантажені образи
docker system df скільки місця займає Docker
docker system prune прибрати зупинені контейнери й невикористані дані

Перевірте й Compose — він уже встановлений як плагін:

docker compose version
docker compose чи docker-compose?

Сучасна команда — docker compose (через пробіл, Compose v2). Стара окрема утиліта docker-compose (через дефіс) більше не підтримується. Якщо в інструкції бачите дефіс — просто замініть його пробілом.

Типові помилки та як їх виправити

permission denied while trying to connect to the Docker daemon socket

permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock

Ваш користувач не в групі docker. Додайте його (див. розділ «Запуск docker без sudo») і перезайдіть у систему — без цього нова група не застосується. Швидка перевірка: команда groups має показати docker.

Cannot connect to the Docker daemon. Is the docker daemon running?

Сервіс не запущений або впав. Перевірте:

sudo systemctl status docker
sudo journalctl -u docker --since "10 min ago"

Найчастіші причини — синтаксична помилка в /etc/docker/daemon.json (зайва кома в JSON) або закінчилося місце на диску. На Windows і macOS ця помилка означає, що Docker Desktop не запущений.

E: Package 'docker-ce' has no installation candidate

apt не бачить репозиторій Docker. Перевірте, що файл /etc/apt/sources.list.d/docker.sources існує і в ньому правильна кодова назва системи, після чого виконайте sudo apt update. На свіжих релізах Ubuntu пакети іноді з'являються на кілька днів пізніше за сам реліз.

Conflicting values set for option Signed-By

Репозиторій Docker підключено двічі: старим способом (docker.list) і новим (docker.sources). Видаліть старий файл:

sudo rm /etc/apt/sources.list.d/docker.list
sudo apt update

WSL 2 installation is incomplete / Virtualization support not detected (Windows)

Увімкніть віртуалізацію в BIOS/UEFI (Intel VT-x або AMD-V/SVM), потім у PowerShell від адміністратора виконайте wsl --update і перезавантажтеся.

port is already allocated

Bind for 0.0.0.0:8080 failed: port is already allocated

Порт уже зайнятий іншим контейнером чи програмою. Знайдіть, хто його тримає (docker ps, sudo ss -ltnp | grep 8080), або змініть зовнішній порт: -p 8081:80.

Як повністю видалити Docker з 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 /etc/apt/sources.list.d/docker.sources /etc/apt/keyrings/docker.asc
Дані зникнуть

rm -rf /var/lib/docker видаляє всі образи, контейнери й томи — разом із базами даних, які в них жили. Спершу зробіть бекап.

Часті питання

Чи можна встановити Docker командою sudo apt install docker.io? Можна: це пакет, який збирає сама Ubuntu. Але версія там зазвичай старіша, а Compose і Buildx треба доставляти окремо. Для серверів і навчання краще офіційний репозиторій, як у цій інструкції.

А скрипт get.docker.com? Він зручний для тестових віртуалок, але сама документація Docker не радить його для продакшену: скрипт ставить найсвіжіше без підтверджень і не дає контролю над версією.

Скільки місця потрібно Docker? Сам Engine займає кілька сотень мегабайт, але образи накопичуються швидко. Стежте командою docker system df і періодично прибирайте зайве через docker system prune.

Docker чи Podman? Podman сумісний з більшістю команд Docker і працює без демона. Для навчання й більшості туторіалів простіше почати з Docker — майже всі приклади в інтернеті написані під нього.

Що далі

Docker встановлено — тепер варто навчитися збирати власні образи й описувати проєкт у compose.yaml. Більше практики — в рубриці Docker: як писати оптимальний Dockerfile, як працюють мережі й томи та як підняти весь проєкт локально однією командою.

Збережіть статтю собі

Увійдіть, щоб імпортувати її у власні нотатки, відмічати вивчене, ставити лайки й питати спільноту. Реєстрація безкоштовна: вхід через Google займає кілька секунд.

Увійти через Google Інші способи входу