1. Блог
  2. Мануалы

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

Как установить 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 — автоматическое обновление контейнеров.

Видеоинструкция

YouTube video