opened image

Установка Docker Engine и Docker Compose на Ubuntu 24.04

Ниже — быстрый, надёжный и лаконичный способ поставить Docker Engine и Docker Compose v2 (как плагин docker compose) на Ubuntu 24.04. Команды также подходят для 20.04/22.04 (и Debian 12 — с заменой репозитория на debian).

 

(Опционально) Удалите старые пакеты Docker

 

Если раньше ставили docker.io/старые версии:

sudo apt-get remove -y docker.io docker-doc docker-compose docker-compose-v2 podman-docker \
 containerd runc || true

 

 

Подготовка

 

sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg

 

 

Репозиторий Docker (официальный)

 

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Для noble (Ubuntu 24.04) переменная подставится автоматически
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu $(. /etc/os-release; echo "$UBUNTU_CODENAME") stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

 

 

Установка Docker + Compose v2

 

sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

 

 

Автозапуск и права

 

sudo systemctl enable --now docker
sudo usermod -aG docker $USER

 

 

Обновить группу в текущей сессии

 

(иначе потребуется перелогиниться)

newgrp docker

 

 

Проверка

 

docker --version
docker compose version

 

 

Ручная установка (standalone binary)

 

Создайте директорию для плагинов:

 

DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins

 

 

Скачайте и установите (для x86_64; замените версию на актуальную, например, v2.40.1):

 

 

curl -SL https://github.com/docker/compose/releases/download/v2.40.1/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose

 

Сделайте исполняемым:

 

 

chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose

 

Проверьте:

 

 

docker compose version

 

Для системной установки замените $HOME/.docker на /usr/local/lib/docker/cli-plugins и используйте sudo.

 

 

Совместимость

На Ubuntu 24.04 нет известных проблем с Docker Compose и Engine. Используйте docker compose (с пробелом) для команд.

Если возникнут ошибки, проверьте логи: sudo journalctl -u docker. Для полного удаления Docker см. выше Как удалить Docker

 

 

Полезно

 

Обновление Docker/Compose

sudo apt-get update && sudo apt-get install -y \
  docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

 

Удаление (если потребуется)

sudo apt-get purge -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo rm -rf /var/lib/docker /var/lib/containerd

 

Запуск ваших компоуз-проектов

docker compose up -d

 

 

 

Проверяем запущенные контейнеры:

docker ps

 

 

 

Короткий раздел «Если что-то не работает»

 

  • permission denied при docker ps — вы забыли перезайти в сессию/обновить группы:

    newgrp docker
    
  • Сервис не стартует:

    systemctl status docker --no-pager
    journalctl -u docker -n 100 --no-pager
    
  • Нужна старая команда docker-compose (не обязательно):

    # Создаёт удобный псевдоним на плагин v2
    if [ -f /usr/libexec/docker/cli-plugins/docker-compose ]; then
      sudo ln -sf /usr/libexec/docker/cli-plugins/docker-compose /usr/local/bin/docker-compose
    elif [ -f /usr/lib/docker/cli-plugins/docker-compose ]; then
      sudo ln -sf /usr/lib/docker/cli-plugins/docker-compose /usr/local/bin/docker-compose
    fi
    docker-compose version
    

 

 

Заключение

 

Вы установили актуальный Docker Engine и Docker Compose v2 на Ubuntu 24.04, подключили официальный репозиторий и включили автозапуск демона. Теперь можно запускать инфраструктуру одной командой docker compose up -d. Рекомендуется:

  • хранить docker-compose.yml и .env в Git-репозитории;

  • периодически обновлять Docker через APT (см. раздел «Обновление»);

  • использовать docker context, если управляете удалёнными хостами;

  • включить журналирование и ротацию логов (json-file/local) в ваших сервисах;

  • для production — рассмотреть Rootless Docker, ограничение ресурсов и мониторинг (Prometheus + cAdvisor).

 

Готово: базовая платформа для контейнеризации развернута, можно переходить к деплою приложений.