Установка Docker на Ubuntu 24.04 и 22.04: пошаговая инструкция и рекомендации по настройке
Docker — одна из самых популярных платформ для контейнеризации приложений. С ее помощью можно запускать сервисы в изолированной среде, переносить проекты между серверами и упрощать развертывание инфраструктуры. Именно поэтому Docker применяют и разработчики в процессе создания приложений, и системные администраторы при обслуживании серверов.
Разбираем, как установить Docker на Ubuntu из официального репозитория, настроить Docker Compose, проверить работоспособность и подготовить систему к продакшену. Команды подойдут для Ubuntu версий 22.04 и 24.04.

- Что такое Docker
- Системные требования и подготовка
- Шаг 1: удаляем старые версии Docker
- Шаг 2: устанавливаем зависимости и GPG-ключ
- Шаг 3: добавляем официальный репозиторий Docker
- Шаг 4: устанавливаем Docker Engine
- Шаг 5: устанавливаем и настраиваем Docker Compose
- Шаг 6: донастраиваем Docker для удобной работы
- Полезные команды Docker для новичков
Что такое Docker
Docker — это платформа для контейнеризации приложений. Она позволяет запускать программы в изолированных средах — контейнерах, которые содержат все необходимое для работы: код приложения, системные библиотеки, зависимости и параметры конфигурации.

Контейнеры гарантируют, что приложение будет работать одинаково на любом этапе — от компьютера разработчика до продакшен-сервера. Все окружение упаковано внутрь контейнера, поэтому переносить проект между средами можно без дополнительной настройки. Это упрощает разработку, тестирование и развертывание.
Поясним на примере. Разработчик пишет приложение на одной версии языка, а на сервере стоит другая — и приложение падает. С Docker нужная версия языка и все зависимости упакованы внутрь контейнера, поэтому окружение везде одинаковое. На контейнерах строят микросервисы, конвейеры непрерывной доставки и масштабируемые облачные приложения.
Согласно данным опроса Stack Overflow Developer Survey 2024, Docker стал самым используемым инструментом среди профессиональных разработчиков и набрал 59% упоминаний. Кроме того, согласно метрике «Admired» (желаемый инструмент), 78% разработчиков, уже использующих Docker, хотят продолжать работать с ним — это один из самых высоких показателей среди всех инструментов.
Отличия контейнеризации от виртуализацииВ чем секрет такой популярности? В архитектуре. Контейнеры можно перепутать с виртуализацией, но разница принципиальная. Виртуальная машина поднимает полноценную гостевую операционную систему со своим ядром, а контейнер использует ядро основной системы и изолирует только процессы и файловую систему. За счет этого контейнеры запускаются за секунды и почти не тратят ресурсы на накладные расходы.
Схемы виртуализации (слева) и контейнеризации (справа)Docker включает несколько компонентов, но чаще всего пользователи сталкиваются с Docker Desktop и Docker Engine. Docker Desktop — это приложение с графическим интерфейсом для Windows, macOS и Linux (официально поддерживается с 2022 года). Docker Engine — серверный движок, которым управляют из командной строки. Далее в статье речь пойдет именно о Docker Engine.
Docker Engine устанавливается на сервер, поэтому важно выбрать подходящую операционную систему. Для серверных сред чаще всего используют LTS-версии Ubuntu — они стабильны и поддерживаются Docker официально.
По данным опроса Stack Overflow Developer Survey 2025, Ubuntu остается одной из самых популярных операционных систем среди разработчиков: 27,8% используют ее для личных проектов (второе место после Android с 29%), а 27% – для работы. Эти данные относятся ко всем операционным системам, а не только к дистрибутивам Linux.
Версия | Кодовое имя | Релиз | Стандартная поддержка до |
Ubuntu 24.04 LTS | Noble Numbat | 25 апреля 2024 года | 2029 год |
Ubuntu 22.04 LTS | Jammy Jellyfish | 21 апреля 2022 года | 2027 год |
Установить Docker можно двумя способами: из стандартного репозитория Ubuntu (пакет docker.io) или из официального репозитория Docker. Первый способ короче, но пакет в репозитории Ubuntu обычно отстает по версиям и не всегда содержит свежие плагины. Официальный репозиторий всегда отдает актуальную стабильную версию движка, CLI и Docker Compose. Именно поэтому в инструкции используется официальный репозиторий — этот способ рекомендуют и сами разработчики Docker.

Системные требования и подготовка
Docker нетребователен к ресурсам, но если вы планируете запускать несколько контейнеров одновременно, запас по памяти и процессору не помешает. В таблице ниже — минимум для комфортной работы, основанный на практике. Официально Docker требует лишь 64-разрядную архитектуру, ядро Linux не ниже 3.10 и одну из LTS-версий Ubuntu.
Параметр | Минимум | Рекомендуется |
Архитектура | x86-64, arm64, armhf, s390x, ppc64le | 64-бит |
Процессор | Два ядра | Четыре ядра и больше |
Оперативная память | 2 ГБ | 4 ГБ и больше |
Свободное место на диске | 10 ГБ | 20 ГБ и больше |
ОС | Ubuntu 22.04 или 24.04 LTS | Ubuntu 24.04 LTS |
Кроме привычных x86-64 и arm64, Docker поддерживает armhf, s390x и ppc64le. Обычному пользователю они вряд ли понадобятся, но если вы работаете с нестандартным «железом» — имейте в виду.
Команды, которые мы будем выполнять, почти все требуют sudo. Так что сразу проверьте, есть ли у вашего пользователя права суперпользователя. Если нет — добавьте его в группу sudo или обратитесь к администратору.
Перед установкой обновите систему. Это заодно подтянет свежие версии пакетов и закроет известные уязвимости:
И сразу уточните версию Ubuntu — от нее зависит кодовое имя релиза, которое пригодится при подключении репозитория:
Шаг 1: удаляем старые версии Docker
Если на сервере раньше уже пробовали запускать Docker, в системе могут остаться старые или конфликтующие пакеты.
Например, на новом сервере кто-то быстро поставил docker.io из стандартного репозитория, а теперь нужна актуальная версия из официального источника. Старые пакеты мешают установке и приводят к конфликту версий, поэтому сначала очистите систему.
Удалите все конфликтующие пакеты одной командой. Она пройдет по списку и снимет каждый пакет, если он установлен:
Если каких-то пакетов в системе нет, apt-get сообщит об этом и продолжит работу — это нормально. Команда удаляет только сами пакеты, а данные в каталоге /var/lib/docker (образы, контейнеры, тома) остаются на месте. Если нужна полностью чистая установка, удалите этот каталог отдельно.
Чтобы система могла безопасно скачивать пакеты Docker по защищенному протоколу, нужно несколько вспомогательных пакетов. Установите их вместе с инструментами для работы с ключами:
Здесь ca-certificates отвечает за проверку сертификатов при соединении по защищенному протоколу (HyperText Transfer Protocol Secure, HTTPS), curl загружает файлы из сети, а gnupg нужен для работы с криптографическими ключами.
Дальше добавьте официальный цифровой ключ Docker (GNU Privacy Guard, GPG). Он подтверждает, что пакеты действительно выпущены Docker, а не подменены по пути. Сначала создайте каталог для ключей, затем скачайте ключ и выдайте права на чтение:
После добавления ключа система сможет проверять цифровые подписи пакетов из репозитория Docker. Если этого не сделать, Ubuntu не будет доверять источнику и может отказаться устанавливать программное обеспечение из него.
Шаг 3: добавляем официальный репозиторий Docker
На этом этапе добавьте официальный репозиторий Docker — из него система будет устанавливать Docker Engine и получать обновления.
Репозиторий привязывается к конкретной версии Ubuntu через кодовое имя релиза. Это важно учитывать: для Ubuntu 24.04 используется noble, а для Ubuntu 22.04 — jammy.
Чтобы не указывать версию вручную, можно использовать автоматическое определение системы. В этом случае команда сама считывает данные из файла /etc/os-release, определяет установленный релиз Ubuntu и подставляет нужное кодовое имя.
При использовании такого способа команда для установки Docker на Ubuntu 24.04 и для 22.04 выглядит одинаково: строка Suites автоматически примет значение noble или jammy. Если же вы предпочитаете прописывать кодовое имя вручную, замените содержимое строки Suites на noble для Ubuntu 24.04 или на jammy для Ubuntu 22.04.
Обратите внимание: в официальном репозитории Docker для указания версии Ubuntu используется кодовое имя релиза (например, noble или jammy), а не номер версии. Это стандартный способ, описанный в документации Docker. Если указать неверное значение, система не сможет подключиться к репозиторию Docker и выдаст ошибку. В остальном процесс установки Docker на Ubuntu 22.04 и 24.04 полностью одинаков.
Репозиторий подключен, но система пока о нем не знает. Сначала обновите индекс пакетов, чтобы apt-get увидел содержимое нового репозитория, затем установите основные компоненты Docker при помощи команды:
За одну команду устанавливается сразу несколько компонентов, и у каждого своя роль.
Компонент | Назначение |
docker-ce | Сам движок Docker Engine — фоновая служба, которая управляет контейнерами |
docker-ce-cli | Командная строка docker для управления движком |
containerd.io | Среда выполнения контейнеров, на которой работает движок |
docker-buildx-plugin | Плагин расширенной сборки образов |
docker-compose-plugin | Плагин Docker Compose для запуска приложений из нескольких контейнеров |
Внутри Docker устроен слоями: команды из CLI уходят в фоновую службу, та обращается к среде выполнения, а уже она запускает изолированные процессы контейнеров
Если при установке появляется ошибка Unable to locate package docker-ce, чаще всего это означает, что система не может найти пакет Docker в подключенных репозиториях. Обычно проблема возникает по одной из двух причин: после добавления репозитория не была выполнена команда sudo apt-get update или официальный репозиторий Docker подключен с ошибкой.
Проверьте, видит ли система репозиторий Docker:
Если репозиторий подключен корректно, в выводе команды будет указан адрес download.docker.com. Если такого адреса нет, проверьте настройки репозитория и повторите обновление списка пакетов с помощью команды:
Docker Compose — это инструмент для запуска приложений из нескольких контейнеров сразу. Устанавливать его отдельно не нужно: в современной версии Docker Compose поставляется как плагин второго поколения и уже вошел в установку через пакет docker-compose-plugin на предыдущем шаге.
Плагин вызывается командой docker compose через пробел. Это Compose V2, написанный на Go и встроенный в Docker CLI. Отдельное Python-приложение docker-compose (через дефис) было версией Compose V1 – его поддержка прекращена, и использовать его не рекомендуется.
Зачем нужен Docker Compose? Представьте типичное веб-приложение: веб-сервер, база данных и кеш. Связывать три контейнера вручную при каждом запуске долго, и легко ошибиться. Docker Compose описывает всю конфигурацию в одном файле (по умолчанию ищутся compose.yaml, compose.yml, docker-compose.yaml или docker-compose.yml – в этом порядке приоритета). При управлении мультиконтейнерными приложениями это экономит время и снижает риск ошибок.
Простой пример такого файла для веб-сервера и базы данных выглядит так:
Чтобы запустить оба сервиса в фоне, в каталоге с этим файлом выполните:
Чтобы остановить и удалить все, что описано в конфигурации, выполните:
Шаг 6: донастраиваем Docker для удобной работы
Добавьте еще три настройки, чтобы сделать работу проще и безопаснее.
Настройте запуск без sudo. По умолчанию команды Docker требуют прав суперпользователя. Чтобы не писать sudo каждый раз, добавьте своего пользователя в группу docker командой:
После выполнения перезайдите в систему или выполните:
Учитывайте, что доступ к сокету Docker (/var/run/docker.sock) дает возможность выполнять команды с привилегиями root в контексте Docker (например, монтировать хост-файловую систему в контейнер). Это не означает полных прав root в системе, но потенциально позволяет эскалацию привилегий, поэтому добавляйте в группу docker только доверенных пользователей.
Включите автозапуск. Чтобы Docker стартовал автоматически после перезагрузки сервера, включите его службы командой:
На большинстве систем автозапуск включается автоматом при установке, но лучше убедиться.
Ограничьте размер логов. По умолчанию журналы контейнеров наполняются без ограничений. Со временем они способны заполнить диск, если об этом не побеспокоиться. Чтобы переполнения не произошло, ограничьте размер и число файлов журнала через конфигурацию: создайте или отредактируйте файл /etc/docker/daemon.json и добавьте в него настройки логирования:
Перезапустите службу командой:
Теперь Docker будет хранить не больше трех файлов журнала по 10 МБ на контейнер, а старые записи будет удалять.
Проверяем правильность установки и настроек
Чтобы убедиться, что все собрано правильно, запустите тестовый контейнер:
Docker скачает небольшой образ, запустит его и выведет приветственное сообщение: «Hello from Docker!» и описание того, как именно Docker выполнил эту команду. Если все получилось, значит, движок, среда выполнения и сеть работают корректно
Дополнительно проверьте, что служба запущена, командой:
В выводе должна быть строка со статусом active (running).
Сверьте версии установленных компонентов:
Если все три команды вернули номера версий без ошибок, установка Docker на Ubuntu завершена успешно и система готова к работе.
Полезные команды Docker для новичков
Чтобы начать работать с контейнерами, достаточно небольшого набора базовых команд. Ниже — те, что понадобятся в первую очередь.
Команда | Что делает |
docker ps | Показывает запущенные контейнеры |
docker ps -a | Показывает все контейнеры, включая остановленные |
docker images | Выводит список загруженных образов |
docker pull <образ> | Скачивает образ из реестра |
docker run <образ> | Создает и запускает контейнер из образа |
docker stop | Останавливает запущенный контейнер |
docker rm | Удаляет остановленный контейнер |
docker logs | Показывает журнал контейнера |
docker exec -it | Подключается к терминалу внутри запущенного контейнера |
docker rmi <образ> | Удаляет образ |
Например, чтобы запустить веб-сервер Nginx и пробросить его на порт хоста, используют команду:
Здесь параметр -p 8080:80 связывает порт 8080 на сервере с портом 80 внутри контейнера, а после запуска сайт открывается по адресу сервера на порту 8080.
Со временем на диске копятся неиспользуемые образы, остановленные контейнеры и тома. Освободить место поможет команда:
Она удаляет лишние объекты, но запускайте ее осознанно, понимая, что именно будет удалено.
Готовые образы хранятся в Docker Hub — публичном реестре с миллионами официальных и пользовательских образов: базы данных, веб-серверы, языки программирования и целые приложения. Найдите нужный образ и скачайте его командой:
Когда образ собран и протестирован локально, возникает следующий вопрос: где хранить образы и запускать контейнеры в продакшене, не поднимая инфраструктуру вручную. Эту задачу закрывают облачные сервисы — например, у Cloud.ru есть сервис Evolution Artifact Registry, который работает как реестр для хранения OCI-совместимых артефактов: Docker-образов и Helm-чартов, а Evolution Container Apps позволяет запускать контейнеры в готовой облачной среде без настройки и администрирования серверов. На практике это выглядит так: команда собирает образ веб-сервиса на Ubuntu, загружает его в Evolution Artifact Registry и разворачивает через Evolution Container Apps — без ручной установки Docker на каждый сервер и без забот об обновлении инфраструктуры.
Заключение
Установка Docker на Ubuntu 22.04 и 24.04 включает несколько этапов: подготовку системы, подключение официального репозитория, установку Docker Engine и базовую настройку окружения. После проверки тестовым контейнером можно приступать к развертыванию сервисов, микросервисных приложений и проектов, состоящих из нескольких контейнеров.
Чтобы Docker работал стабильно и безопасно, придерживайтесь нескольких рекомендаций:
не запускайте контейнеры от имени пользователя root без необходимости;
ограничивайте потребление процессора и памяти для контейнеров, чтобы отдельный сервис не мог занять все ресурсы сервера;
регулярно обновляйте Docker Engine и связанные компоненты для получения исправлений ошибок и уязвимостей;
используйте только проверенные образы из надежных источников;
для продакшен-среды указывайте конкретные версии образов вместо тега latest, чтобы избежать неожиданных изменений после обновления;
учитывайте, что пользователи из группы docker получают расширенные права в системе, поэтому доступ к этой группе следует выдавать только доверенным администраторам.
Эти меры помогут снизить риски и сделать работу контейнеров более предсказуемой как на тестовых, так и на рабочих серверах.
Если вы хотите перенести контейнеры в облако и не тратить время на администрирование серверов, изучите готовые решения для работы с контейнерами от Cloud.ru или обратитесь за консультацией.
