Как установить Docker на Ubuntu 22.04, 24.04 и 26.04

Docker упаковывает приложение вместе с его зависимостями в контейнер, который одинаково запускается на любом сервере. Ниже — установка актуальной версии на Ubuntu из официального репозитория Docker и настройки, которые стоит сделать сразу.
Почему не пакет из репозитория Ubuntu
В Ubuntu есть собственный пакет docker.io, но он обновляется с задержкой. Официальный репозиторий Docker даёт свежую версию движка и плагины Compose и Buildx.
Шаг 1. Удалите старые пакеты
sudo apt remove docker.io docker-doc docker-compose podman-docker containerd runc
Если пакеты не установлены, команда просто сообщит об этом.
Шаг 2. Подключите репозиторий Docker
sudo apt update
sudo apt install -y 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
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Шаг 3. Установите Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Служба запускается автоматически и включена в автозагрузку. Проверьте:
sudo systemctl status docker
sudo docker run --rm hello-world
Шаг 4. Работа без sudo
sudo usermod -aG docker $USER
Перезайдите в систему. Помните: пользователь из группы docker фактически имеет права root.
Шаг 5. Ограничьте размер логов
По умолчанию журналы контейнеров растут без ограничений и со временем заполняют диск. Создайте файл /etc/docker/daemon.json:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
Перезапустите службу:
sudo systemctl restart docker
Настройка действует на контейнеры, созданные после перезапуска.
Основные команды
| Команда | Что делает |
|---|---|
docker ps |
список запущенных контейнеров (-a — всех) |
docker images |
список загруженных образов |
docker run -d --name web -p 8080:80 nginx |
запустить контейнер в фоне |
docker logs -f web |
журнал контейнера в реальном времени |
docker exec -it web sh |
открыть командную строку внутри контейнера |
docker stop web / docker start web |
остановить и запустить |
docker rm web |
удалить контейнер |
docker compose up -d |
запустить сервисы из docker-compose.yml |
Docker и файрвол
Docker сам управляет правилами сетевого фильтра, поэтому порт, опубликованный через -p 8080:80, доступен из интернета, даже если UFW его не разрешает. Чтобы сервис был доступен только локально, публикуйте порт на локальном адресе:
docker run -d -p 127.0.0.1:8080:80 nginx
Очистка диска
Посмотреть, сколько места занимает Docker:
docker system df
Удалить остановленные контейнеры, неиспользуемые сети и образы без тегов:
docker system prune
С ключом -a удаляются все образы, не используемые контейнерами, с --volumes — ещё и неиспользуемые тома. С томами будьте осторожны: в них хранятся данные.
Обновление и удаление
Docker обновляется вместе с системой:
sudo apt update && sudo apt upgrade
Полное удаление вместе с образами, контейнерами и томами:
sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo rm -rf /var/lib/docker /var/lib/containerd
Что дальше
- Portainer — веб-интерфейс для управления контейнерами.
- Dozzle — просмотр логов в браузере.
- Watchtower — автоматическое обновление контейнеров.
Видеоинструкция



