Docker — платформа контейнеризации с открытым исходным кодом. Она позволяет упаковать приложение со всеми его библиотеками в контейнер и запускать его одинаково на любой машине. На одном компьютере можно держать много контейнеров, и они не мешают друг другу и основной системе.
Какие версии Ubuntu подходят
По официальной документации Docker нужна 64-разрядная Ubuntu одной из версий:
- Ubuntu 25.10 (Questing)
- Ubuntu 25.04 (Plucky)
- Ubuntu 24.04 LTS (Noble)
- Ubuntu 22.04 LTS (Jammy)
Проверить свою версию:
lsb_release -a

Шаг 1. Удаляем неофициальные пакеты
В репозитории Ubuntu есть свои сборки: docker.io, docker-compose, docker-compose-v2, docker-doc, docker-buildx, podman-docker, а также containerd и runc. Они конфликтуют с официальными пакетами Docker, поэтому перед установкой их нужно удалить. Если ничего из этого не стоит, команда просто ничего не сделает.
apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc docker-buildx podman-docker containerd runc | cut -f1)
Шаг 2. Подготовка
Обновляем список пакетов и ставим два нужных пакета: curl — чтобы скачать ключ, ca-certificates — для проверки HTTPS-сертификатов. В Ubuntu 22.04 они обычно уже стоят. Пакеты apt-transport-https и software-properties-common, которые часто советуют в старых инструкциях, для этой установки не нужны.
apt update
apt install -y ca-certificates curl
Проверить, что пакеты установлены (ii в начале строки — пакет стоит):
dpkg -l curl ca-certificates gnupg | tail -n +4

Шаг 3. Ключ и репозиторий Docker
Скачиваем GPG-ключ Docker — по нему apt проверяет, что пакеты подписаны именно Docker, — и подключаем репозиторий в современном формате .sources. Архитектура и кодовое имя версии Ubuntu подставляются автоматически, поэтому те же команды работают и на 24.04.
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
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
apt update
Проверяем, что пакеты Docker теперь берутся с download.docker.com:
apt-cache madison docker-ce | head -4

Шаг 4. Установка Docker
Ставим сам Docker, консольный клиент, containerd и два плагина — buildx (сборка образов) и compose (запуск нескольких контейнеров одним файлом):
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Служба запускается сама и добавляется в автозагрузку. Проверяем статус — должно быть active (running):
systemctl status docker --no-pager

Финальная проверка — тестовый контейнер. Docker скачает крошечный образ hello-world и выведет приветствие:
docker run hello-world
...
Hello from Docker!
This message shows that your installation appears to be working correctly.
Шаг 5. Docker Compose
Когда проекту нужно сразу несколько контейнеров — например, бэкенд, фронтенд и база данных, — управлять ими по одному неудобно. Docker Compose описывает все сервисы в одном файле docker-compose.yml и поднимает их одной командой.
Compose уже установлен на шаге 4 как плагин и вызывается через пробел — docker compose:
docker compose version
docker buildx version

Запуск Docker без sudo
По умолчанию команды docker работают только от root. Чтобы обычный пользователь мог запускать их без sudo, добавьте его в группу docker и перезайдите в систему:
usermod -aG docker имя_пользователя # username
# перезайти в систему, затем проверить / log out and back in, then check:
docker run hello-world
Как полностью удалить Docker
apt purge -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
rm -rf /var/lib/docker /var/lib/containerd # удалит все образы, контейнеры и тома / deletes all images, containers and volumes
rm /etc/apt/sources.list.d/docker.sources /etc/apt/keyrings/docker.asc
Итог
- Docker ставится из официального репозитория download.docker.com, а не из пакета docker.io.
- Compose — это плагин docker compose, отдельный пакет docker-compose не нужен.
- Проверка: systemctl status docker и docker run hello-world.
Новости и разборы рынка GPU — в нашем Telegram-канале @flux_vast_news