Як встановити Docker на Ubuntu, Windows і macOS: покрокова інструкція
Встановлення Docker Engine на Ubuntu з офіційного репозиторію, Docker Desktop на Windows (WSL 2) і macOS, запуск без sudo, перевірка й розбір типових помилок.
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 і додає графічний інтерфейс.
Контейнер — це звичайний процес на вашій машині, ізольований засобами ядра 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 DesktopDocker 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-worldDocker завантажить крихітний тестовий образ, запустить контейнер і виведе 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
- Завантажте Docker Desktop з docker.com — для свого процесора: Apple Silicon (M1–M5) або Intel. Перевірити: меню Apple → «Про цей Mac» → рядок «Чип».
- Відкрийте
.dmgі перетягніть Docker у «Програми». - Запустіть Docker, прийміть умови й дочекайтеся, поки іконка кита в рядку меню перестане анімуватися.
- Перевірте в терміналі:
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 versiondocker 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 updateWSL 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 Інші способи входу