Docker на Ubuntu 24.04: установка, настройка, запуск контейнеров

Docker на Ubuntu 24.04: установка, настройка, запуск контейнеров

Разбираем три метода установки Docker на Ubuntu 24.04: стандартный способ через репозиторий разработчиков, установку .deb-пакета и скрипт. Также в статье —  настройка безопасности и производительности Docker.

Введение

В статье — 3 способа установки Docker Engine на Ubuntu 24.04: через официальные репозитории, .deb-пакеты и автоматический скрипт. Также рассмотрим настройки безопасности и производительности, включая интеграцию с nftables и cgroups.

Аренда VPS/VDS от 219 руб/месяц

Преимущества VPS в AdminVPS:

✓ Бесплатное администрирование

✓ Только быстрые NVMe-диски

✓ Защита от DDoS-атак

✓ Быстрая техподдержка

Аренда VPS/VDS виртуального сервера от AdminVPS — это прозрачная и честная услуга с доступной ценой

Установка Docker: 3 метода

Рассмотрим различные методы установки.

Способ 1. Репозиторий разработчиков (рекомендуется для продакшена)

Этот метод гарантирует получение актуальных версий Docker, подписанных разработчиками, и автоматические обновления через APT.

После обновления пакетного индекса установите зависимости:

sudo apt install ca-certificates curl

Пакет ca-certificates обеспечивает проверку SSL-сертификатов, а curl используется для загрузки ключей.

Импорт GPG-ключа:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Флаг -fsSL подавляет вывод ошибок и метаданных, а --dearmor преобразует ASCII-ключ в бинарный формат, нужный для apt.

Добавление репозитория:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg]] https://download.docker.com/linux/ubuntu noble stable" | sudo tee /etc/apt/sources.list.d/docker.list

Конструкция [arch=...] автоматически определяет архитектуру процессора (amd64/arm64), а signed-by указывает путь к ключу для верификации пакетов. Для Ubuntu 24.04 всегда используйте репозиторий noble — поддержка предыдущих кодовых имён прекращена через 6 месяцев после выхода релиза.

Установка компонентов: 

sudo apt update && sudo apt install docker-ce docker-ce-cli containerd.io

Устанавливаются три ключевых пакета:

  • docker-ce — основной демон,
  • docker-ce-cli — инструменты командной строки,
  • containerd.io — низкоуровневая среда выполнения контейнеров.

Способ 2. Через .deb-пакеты (для систем без Интернета)

Метод подходит для air-gapped-сред, где доступ к репозиториям заблокирован. Скачайте пакеты вручную на машине с Интернетом:

wget https://download.docker.com/linux/ubuntu/dists/noble/pool/stable/$(dpkg --print-architecture)/{docker-ce,docker-ce-cli,containerd.io}_*.deb

Перенесите .deb-файлы на целевой сервер (через USB/SFTP) и установите локально:

sudo apt install ./docker-ce_*.deb ./docker-ce-cli_*.deb ./containerd.io_*.deb

Флаг ./ указывает apt искать пакеты в текущей директории.

С таким способом установки вам придётся вручную отслеживать обновления безопасности. Не забывайте проверять контрольные суммы SHA256 с официального сайта.

Способ 3. Скрипт get.docker.com (для быстрого тестирования)

Установка через скрипт get.docker.com — это автоматизированный метод, подходящий для тестирования и экспериментов:

curl -fsSL https://get.docker.com | sudo sh

Скрипт выполняет:

  • определение дистрибутива и архитектуры,
  • настройку репозитория (как в первом способе),
  • установку последней стабильной версии Docker.

Однако метод имеет ограничения. Он не подходит для продакшена, так как скрипт не позволяет контролировать версии, может конфликтовать с существующими ПО и по умолчанию включает нерекомендуемые компоненты (например, docker-compose-plugin).

Верификация установки

После любого метода убедитесь в корректности установки.

Запустите тестовый контейнер:

sudo docker run --rm hello-world

Успешный вывод содержит:

Hello from Docker! 
This message shows your installation appears to be working correctly.

Флаг --rm автоматически удалит этот контейнер после выполнения.

Версия Docker:

sudo docker info | grep "Server Version"

Для Ubuntu 24.04 должна отображаться версия не ниже 26.Х.Х (актуальная на 2025 год).

Статус демона:

systemctl status docker.service

Ищите строку Active: active (running) — это подтверждает, что фоновый процесс запущен.

Если возникли ошибки:

  • Нет доступа к сокету Docker — добавьте пользователя в группу docker (об этом — в следующем разделе).
  • Ошибка iptables not found — установите пакет iptables-nft (в Ubuntu 24.04 используется nftables).
  • Сетевые проблемы — проверьте journalctl -u docker.service на предмет блокировки брандмауэром.

Для промышленных сред всегда выбирайте первый способ — он обеспечивает контроль версий и автоматические обновления безопасности через unattended-upgrades.

Безопасность и производительность Docker

После установки Docker критически важно настроить параметры безопасности и оптимизировать производительность под ваши задачи. Начнём с управления правами доступа — по умолчанию для работы с Docker нужны права root, что создаёт риски при случайном выполнении вредоносных команд.

Управление правами пользователей

Чтобы не использовать sudo, добавьте пользователя, от имени которого вы работаете с Docker, в группу docker:

sudo usermod -aG docker $USER

После этой команды либо выйдите из системы и войдите, либо активируйте изменения в текущей сессии командой:

newgrp docker

Она перезагружает настройки групп без перезапуска сессии. Для проверки прав выполните docker run hello-world — если контейнер запустится без sudo, настройка выполнена корректно. Однако помните: добавление в группу docker фактически предоставляет пользователю root-привилегии, поэтому делайте это только для доверенных аккаунтов.

Конфигурация демона через daemon.json

Основные параметры Docker Engine настраиваются в файле /etc/docker/daemon.json. Создайте его с такими настройками:

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m",
    "max-file": "3"
  },
  "storage-driver": "overlay2",
  "iptables": false,
  "dns": ["8.8.8.8", "1.1.1.1"]
}

Пояснение параметров:

  • log-driver — формат хранения логов. json-file обеспечивает структурированный вывод и совместим со стандартными инструментами анализа;
  • log-opts — ограничивает размер логов в 100 МБ на контейнер с сохранением трёх ротированных копий, что предотвращает заполнение диска;
  • storage-driver — указан overlay2, это оптимальный драйвер для Ubuntu 24.04, поддерживающий квоты дискового пространства через xfs;
  • iptables — отключение генерации правил iptables необходимо, так как в Ubuntu 24.04 по умолчанию используется nftables;
  • dns — глобальные DNS-серверы для всех контейнеров (переопределяются на уровне контейнера при необходимости).

После изменения конфигурации перезапустите демон:

sudo systemctl restart docker

Интеграция с nftables

В Ubuntu 24.04 nftables заменил iptables в качестве базового файрвола. Docker автоматически интегрируется с nftables и создаёт правила для сетевой изоляции контейнеров. Проверьте сгенерированные правила:

sudo nft list ruleset | grep -A 10 "docker"

В выводе должны присутствовать цепочки DOCKER-USER и DOCKER-ISOLATION-STAGE, управляющие трафиком между контейнерами и хостом. Если вы используете кастомные правила nftables, добавляйте исключения до этих цепочек, чтобы не нарушить работу Docker.

Ограничение ресурсов на уровне демона

Чтобы предотвратить исчерпание ресурсов хост-системы, задайте глобальные лимиты через systemd. Создайте файл переопределения:

sudo systemctl edit docker.service

Добавьте в редакторе:

[Service]
CPUQuota=200%
MemoryLimit=4G

Эти параметры означают:

  • CPUQuota=200% — Docker в целом может использовать не более 2 ядер CPU.
  • MemoryLimit=4G — общее потребление памяти всеми контейнерами ограничено 4 ГБ.

Такие лимиты особенно важны на shared-хостах или в мультитенантных средах. Учтите, что они не заменяют ограничения на уровне отдельных контейнеров (через docker run --cpus или --memory), а дополняют их.

Дополнительные рекомендации безопасности

Активируйте Content Trust для верификации подписей образов:

export DOCKER_CONTENT_TRUST=1

Регулярно обновляйте Docker через стандартный менеджер пакетов:

sudo apt update && sudo apt upgrade docker-ce

Используйте rootless mode для изоляции демона от привилегий root:

sudo apt install docker-ce-rootless-extras
dockerd-rootless-setuptool.sh install

Эти настройки обеспечивают и безопасность, и производительность, позволяя эффективно использовать Docker в Ubuntu 24.04 как для разработки, так и для продакшен-сред.

Читайте в блоге:

Loading spinner
0 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

VPN на VPS-сервере

Узнайте, как создать собственный VPN на VPS-сервере для защиты ваших конфиденциальных данных!

Что будем искать? Например,VPS-сервер

Мы в социальных сетях