yandex
Калькулятор ценТарифыАкцииДокументацияО насКарьера в Cloud.ruНовостиЮридические документыКонтактыРешенияРеферальная программаКейсыПартнерство с Cloud.ruБезопасностьEvolutionAdvancedEvolution StackОблако VMwareВ чем отличия платформ?БлогОбучение и сертификацияМероприятияИсследования Cloud.ruЛичный кабинетВойтиЗарегистрироватьсяОблако для мобильных и веб‑приложенийСайт в облакеАналитика данных в облакеХранение данных в облакеАналитика данных в облакеИнфраструктура для 1С в облакеМиграция IT‑инфраструктуры в облако3D-моделирование и рендерингРазработка и тестирование в облакеEvolution ComputeEvolution Managed KubernetesEvolution Object StorageEvolution Managed PostgreSQL®Evolution Bare MetalEvolution SSH KeysEvolution ImageEvolution DNSEvolution VPCEvolution Load BalancerEvolution Magic RouterEvolution DiskEvolution Container AppsEvolution Artifact RegistryEvolution Managed ArenadataDBEvolution Managed TrinoEvolution Managed SparkEvolution ML InferenceEvolution Distributed TrainEvolution ML FinetuningEvolution NotebooksEvolution TagsEvolution Task HistoryCurator Anti-DDoSCurator Anti‑DDoS+WAFUserGate: виртуальный NGFWStormWall: Anti-DDoSCloud MonitoringCloud LoggingАренда GPUDirect ConnectCDNCloud AdvisorCross-platform connectionAdvanced Object Storage ServiceAdvanced Elastic Cloud ServerAdvanced Relational Database Service for PostgreSQLAdvanced Image Management ServiceAdvanced Auto ScalingAdvanced Enterprise RouterAdvanced Cloud Backup and RecoveryAdvanced Data Warehouse ServiceAdvanced Elastic Volume ServiceAdvanced Cloud Container EngineAdvanced FunctionGraphAdvanced Container Guard ServiceAdvanced Software Repository for ContainerAdvanced Document Database Service with MongoDBAdvanced Relational Database Service for MySQLAdvanced Relational Database Service for SQL ServerAdvanced Server Migration ServiceAdvanced Data Replication ServiceAdvanced API GatewayAdvanced CodeArtsAdvanced Distributed Message Service for KafkaAdvanced Distributed Message Service for RabbitMQAdvanced DataArts InsightAdvanced CloudTableAdvanced MapReduce ServiceAdvanced Cloud Trace ServiceAdvanced Application Performance ManagementAdvanced Identity and Access ManagementAdvanced Enterprise Project Management ServiceVMware: виртуальный ЦОД с GPUVMware: виртуальный ЦОДУдаленные рабочие столы (VDI)VMware: резервное копирование виртуальных машинVMware: резервный ЦОДVMware: резервное копирование в облакоVMware: миграция виртуальных машин
Связаться с нами

Установка Docker на Ubuntu 24.04 и 22.04: пошаговая инструкция и рекомендации по настройке

Docker — одна из самых популярных платформ для контейнеризации приложений. С ее помощью можно запускать сервисы в изолированной среде, переносить проекты между серверами и упрощать развертывание инфраструктуры. Именно поэтому Docker применяют и разработчики в процессе создания приложений, и системные администраторы при обслуживании серверов.

Разбираем, как установить Docker на Ubuntu из официального репозитория, настроить Docker Compose, проверить работоспособность и подготовить систему к продакшену. Команды подойдут для Ubuntu версий 22.04 и 24.04.

Инструкции
Иллюстрация для статьи на тему «Установка Docker на Ubuntu 24.04 и 22.04: пошаговая инструкция и рекомендации по настройке»
Продукты из этой статьи:
Иконка-Evolution Artifact Registry
Evolution Artifact Registry

Что такое Docker

Docker — это платформа для контейнеризации приложений. Она позволяет запускать программы в изолированных средах — контейнерах, которые содержат все необходимое для работы: код приложения, системные библиотеки, зависимости и параметры конфигурации.

Один реестр для Docker, Helm, DEB и RPM
Один реестр для Docker, Helm, DEB и RPM
Сборка из GitHub/GitLab, CVE-проверка, приватные и публичные репозитории
Узнать больше

Контейнеры гарантируют, что приложение будет работать одинаково на любом этапе — от компьютера разработчика до продакшен-сервера. Все окружение упаковано внутрь контейнера, поэтому переносить проект между средами можно без дополнительной настройки. Это упрощает разработку, тестирование и развертывание. 

Поясним на примере. Разработчик пишет приложение на одной версии языка, а на сервере стоит другая — и приложение падает. С 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 (образы, контейнеры, тома) остаются на месте. Если нужна полностью чистая установка, удалите этот каталог отдельно.

Шаг 2: устанавливаем зависимости и GPG-ключ

Чтобы система могла безопасно скачивать пакеты 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 полностью одинаков.

Шаг 4: устанавливаем Docker Engine

Репозиторий подключен, но система пока о нем не знает. Сначала обновите индекс пакетов, чтобы apt-get увидел содержимое нового репозитория, затем установите основные компоненты Docker при помощи команды:

За одну команду устанавливается сразу несколько компонентов, и у каждого своя роль.

Компонент
Назначение
docker-ce
Сам движок Docker Engine — фоновая служба, которая управляет контейнерами
docker-ce-cli
Командная строка docker для управления движком
containerd.io
Среда выполнения контейнеров, на которой работает движок
docker-buildx-plugin
Плагин расширенной сборки образов
docker-compose-plugin
Плагин Docker Compose для запуска приложений из нескольких контейнеров
Внутри Docker устроен слоями: команды из CLI уходят в фоновую службуВнутри Docker устроен слоями: команды из CLI уходят в фоновую службу, та обращается к среде выполнения, а уже она запускает изолированные процессы контейнеров
Дарим до 20 000 бонусов
Дарим до 20 000 бонусов
4 000 бонусов – физическим лицам, 20 000 бонусов – юридическим
Узнать больше

Если при установке появляется ошибка Unable to locate package docker-ce, чаще всего это означает, что система не может найти пакет Docker в подключенных репозиториях. Обычно проблема возникает по одной из двух причин: после добавления репозитория не была выполнена команда sudo apt-get update или официальный репозиторий Docker подключен с ошибкой.

Проверьте, видит ли система репозиторий Docker:

Если репозиторий подключен корректно, в выводе команды будет указан адрес download.docker.com. Если такого адреса нет, проверьте настройки репозитория и повторите обновление списка пакетов с помощью команды:

Шаг 5: устанавливаем и настраиваем Docker Compose

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 bash
Подключается к терминалу внутри запущенного контейнера
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 или обратитесь за консультацией.

Продукты из этой статьи:
Иконка-Evolution Artifact Registry
Evolution Artifact Registry
23 июня 2026

Нужна помощь с облаком?

Свяжитесь с нашим специалистом
*
*
+7
*
*
*
0/300

Вам может понравиться