Как установить Docker на Ubuntu
В Ubuntu Docker ставится из пакетов системы одной командой: docker.io — сам Docker, docker-compose-v2 — команда docker compose. Служба запускается сразу и дальше стартует сама при загрузке сервера. Второй способ — репозиторий Docker; выберите что-то одно.
Содержание 11
Что сделать прямо сейчас
Команды на этой странице вводятся на сервере: подключитесь к нему по SSH (как подключиться) и набирайте их в том же окне.
- Обновите список пакетов:
sudo apt update. - Установите Docker и Compose:
sudo apt install docker.io docker-compose-v2. Если система спросит пароль, введите пароль своего пользователя на сервере. Символы при вводе не видны — так и должно быть: наберите пароль и нажмите Enter. На вопросDo you want to continue? [Y/n]нажмите Y и Enter. - Проверьте службу:
sudo systemctl status docker. В ответе должно бытьactive (running). Выйти из ответа — клавиша Q. - Проверьте, что Docker отвечает:
sudo docker ps. В ответе — таблица контейнеров. Пока их нет, в ней только строка с названиями столбцов. Ошибки быть не должно. - Проверьте Compose:
docker compose version— в ответе должен быть номер версии. - Если не хотите писать sudo перед каждой командой docker — раздел ниже.
Какая версия поставится
| Ubuntu | Версия Docker | Пакеты |
|---|---|---|
| 24.04 | Docker 29.1.3 | docker.io 29.1.3 и docker-compose-v2 2.24.6 |
| 26.04 | Docker 29.1.3 | docker.io 29.1.3 и docker-compose-v2 2.40.3 |
Номера версий взяты со страниц пакетов Ubuntu на 14 октября 2026 года: с обновлениями они растут. Какая Ubuntu стоит у вас — как узнать. Версию Docker на сервере покажет docker --version.
Документация Ubuntu Server пишет, что пакеты docker.io поддерживает Canonical — компания, которая выпускает Ubuntu. Обновления для них приходят вместе с обновлениями системы: sudo apt update, затем sudo apt upgrade.
Какой способ выбрать
| Способ | Пакеты | Как ставить |
|---|---|---|
| пакеты Ubuntu | docker.io и docker-compose-v2 | одной командой apt, как на этой странице |
| репозиторий Docker | docker-ce и docker-compose-plugin | по официальной инструкции для Ubuntu: в ней сначала подключают репозиторий, потом ставят пакеты |
Из репозитория Docker приходят самые свежие версии, и сам Docker советует ставить так — этот путь разобран в разделе Docker на сервере: пять настроек сразу. Пакеты Ubuntu проще: одна команда, и обновления вместе с системой.
Не помните, как ставили Docker раньше? Посмотрите:
apt list --installed 2>/dev/null | grep dockerСтрока docker.io значит, что Docker из пакетов Ubuntu, а docker-ce — из репозитория Docker. Пустой ответ — через apt Docker не ставили.
Docker без sudo
После установки команды docker работают только через sudo: управлять Docker могут root и участники группы docker. Саму группу пакет создаёт при установке. Чтобы писать команды без sudo, добавьте в неё своего пользователя:
sudo usermod -aG docker $USERЗатем выйдите с сервера командой exit и подключитесь снова: группа начинает действовать после нового входа. Проверьте: docker ps без sudo должна ответить таблицей, без ошибки доступа. Если ошибка осталась — разбор permission denied.
Запуск после перезагрузки
Служба docker включена сразу: после перезагрузки сервера она поднимается сама. Контейнеры — нет: по умолчанию у них политика перезапуска no. Политику задают каждому контейнеру:
| Политика | Когда контейнер поднимается сам |
|---|---|
no | не поднимается — так по умолчанию |
on-failure | когда программа в контейнере завершилась с ошибкой |
always | после любой остановки. Если вы остановили его сами — после перезапуска Docker или сервера |
unless-stopped | как always, но контейнер, который вы остановили сами, остаётся остановленным и после перезагрузки |
Для сайтов и ботов подходит unless-stopped. Уже созданному контейнеру её задаёт команда:
sudo docker update --restart unless-stopped myappВместо myapp — имя контейнера из последнего столбца NAMES в ответе sudo docker ps -a. Новому контейнеру политику задают сразу: флаг --restart unless-stopped у docker run или строка restart: unless-stopped у сервиса в compose-файле.
Что будет при обновлении Docker
Когда пакет docker.io обновляется, а Docker в этот момент работает, apt может спросить, перезапустить ли Docker сразу. Ответ по умолчанию — нет.
- Да: Docker перезапустится и остановит работающие контейнеры. Снова поднимутся те, у которых задана политика перезапуска, — остальные запустите сами.
- Нет: работает прежняя версия. Новая заработает, когда вы перезапустите Docker командой
sudo systemctl restart dockerв удобное время или перезагрузите сервер.
Пока Docker не перезапущен после обновления, у него могут быть сбои с запуском новых контейнеров, поэтому не откладывайте перезапуск надолго.
Где настройки и данные
| Что | Где |
|---|---|
| настройки Docker | /etc/docker/daemon.json |
| образы, контейнеры и тома | в папке /var/lib/docker/, тома — в /var/lib/docker/volumes/ |
| журнал службы | sudo journalctl -u docker |
| что вывел контейнер | sudo docker logs myapp |
| сколько места заняли образы и контейнеры | sudo docker system df |
После правки daemon.json перезапустите Docker: sudo systemctl restart docker. Логи контейнеров Docker по умолчанию не ограничивает — как задать предел, в разделе Ограничьте логи. Если диск заполнился — что можно удалить.
Порты и фаервол
Порт, который контейнер публикует (-p 8080:80 у docker run или ports: в compose-файле), открывается для всего интернета в обход правил ufw. Привязывайте такие порты к 127.0.0.1, а посетителей пускайте через nginx — как это сделать.
Ошибки и как их исправить
| Что видите | Что делать |
|---|---|
permission denied while trying to connect | нет прав на docker.sock |
Cannot connect to the Docker daemon | служба Docker не запущена |
port is already allocated | порт занят |
имя контейнера уже занято: is already in use | разбор |
exec format error | образ собран для другого процессора |
docker-compose: command not found | как поставить Compose |
pull access denied | образ не скачивается |
no space left on device | Docker занял диск |
контейнер сразу останавливается, Exited (1) | разбор |
Unable to locate package docker.io | apt не нашёл пакет |
Все разборы — в разделе Ошибки Docker.
Источники
- Документация Ubuntu Server: Docker for system admins — пакеты docker.io поддерживает Canonical, тома лежат в /var/lib/docker/volumes, настройки — в /etc/docker/daemon.json.
- Пакет docker.io в Ubuntu 24.04 — ставит Docker 29.1.3.
- Пакет docker.io в Ubuntu 26.04 — ставит Docker 29.1.3.
- Пакет docker-compose-v2 в Ubuntu 24.04 — ставит Compose 2.24.6.
- Пакет docker-compose-v2 в Ubuntu 26.04 — ставит Compose 2.40.3.
- Пакет docker.io в Ubuntu 24.04: docker.io.postinst — группа docker создаётся при установке, служба запускается сразу.
- Пакет docker.io в Ubuntu 24.04: docker.io.templates — вопрос о перезапуске Docker при обновлении, ответ по умолчанию — нет.
- Документация Docker: автозапуск контейнеров — политики no, on-failure, always и unless-stopped, команда docker update.
- Документация Docker: установка в Ubuntu — установка из репозитория Docker.
Сверено 14 октября 2026 года.
Что почитать дальше
- Ошибки Dockerразборы по тексту сообщения.
- VPS для разработчикаDocker на сервере: порты, логи, автозапуск.
- Как разместить сайт на VPSкак открыть приложение из контейнера по домену через nginx.
- Команда ufwфаервол на сервере.
- Установка программ на Ubuntuчто ещё поставить для сайта.