Ubuntu 24.04: установка Docker с нуля
Docker превращает установку приложений из мучений с зависимостями в одну команду: контейнер несёт всё нужное внутри себя и запускается одинаково на любом сервере. Установка Docker на Ubuntu 24.04 с нуля занимает несколько минут, если ставить из официального репозитория, а не из устаревших пакетов дистрибутива. Разберём по шагам: подключим репозиторий Docker, поставим движок, проверим его, настроим запуск без sudo и добавим Docker Compose для управления связками контейнеров.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Зачем нужен Docker
Главная боль при установке софта на сервер — конфликты зависимостей. Одному приложению нужна одна версия библиотеки, другому — другая, и они не уживаются на одной системе. Docker решает это радикально: каждое приложение живёт в изолированном контейнере со своими библиотеками, не пересекаясь с соседями. Вы можете держать на одном сервере сайт на старом PHP и сервис на новом Python, и они не будут мешать друг другу.
Второе преимущество — воспроизводимость. Контейнер, собранный по описанию (образу), запускается идентично и на вашем ноутбуке, и на боевом сервере, и у коллеги. Исчезает классическая отговорка «у меня всё работало». Для развёртывания готового ПО это особенно удобно: множество проектов публикуют официальные образы, и запуск сложного сервиса сводится к одной команде вместо страницы инструкций. Понимая эти выгоды, перейдём к установке — но ставить будем правильно, из официального источника.
Почему не из стандартного репозитория
В репозитории Ubuntu есть пакет docker.io, но он часто заметно отстаёт от актуальной версии. Для сервера, который будет работать долго, лучше подключить официальный репозиторий Docker — тогда вы получите свежий движок и своевременные обновления. Это чуть больше шагов на старте, зато потом никаких проблем с устаревшими версиями и отсутствующими возможностями вроде встроенного Docker Compose.
Сначала подготовьте систему: обновите пакеты и поставьте утилиты, нужные для работы с репозиториями по HTTPS:
sudo apt update
sudo apt install -y ca-certificates curl gnupg
Эти пакеты позволяют системе доверять внешнему репозиторию и безопасно скачивать из него. ca-certificates отвечает за проверку сертификатов, curl скачивает ключ, gnupg проверяет его подпись. Без них подключение стороннего репозитория либо не сработает, либо будет небезопасным.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS на Ubuntu 24.04Подключаем официальный репозиторий
Добавьте GPG-ключ Docker, которым подписаны пакеты, и пропишите сам репозиторий в источники apt. Ключ гарантирует, что пакеты действительно от 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
После добавления ключа пропишите репозиторий Docker для вашей версии Ubuntu в файл /etc/apt/sources.list.d/docker.list и обновите списки пакетов командой sudo apt update. Теперь система знает, где брать официальный Docker, и проверяет подлинность пакетов по ключу. Этот аккуратный подход с проверкой подписи — стандарт безопасной установки любого стороннего софта, и его стоит взять за привычку.
Ставим движок Docker
Установите сам движок и сопутствующие компоненты, включая плагин Compose:
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Разберём, что мы ставим. docker-ce — это сам движок (Community Edition), docker-ce-cli — команда docker для управления им, containerd.io — низкоуровневая среда выполнения контейнеров, docker-compose-plugin — современный Compose, встроенный прямо в docker. После установки движок запускается автоматически и добавляется в автозагрузку. Убедитесь, что служба работает: sudo systemctl status docker должна показать active (running).
Проверяем установку
Классический тест — запустить крошечный проверочный образ, который скачивается, выводит приветствие и завершается:
sudo docker run hello-world
Если вы увидели сообщение «Hello from Docker!», значит движок скачал образ из реестра, создал из него контейнер, запустил его и корректно завершил — вся цепочка работает. Это подтверждает, что Docker установлен верно и имеет доступ в интернет за образами. Полезно также выполнить docker version — она покажет версии клиента и сервера, а docker info выведет подробности о конфигурации, включая используемое хранилище и число контейнеров.
Стоит с самого начала привыкнуть к нескольким командам, которые понадобятся ежедневно. Список работающих контейнеров показывает docker ps, а всех, включая остановленные, — docker ps -a. Логи конкретного контейнера смотрят через docker logs имя, что незаменимо при разборе, почему сервис не поднимается. Скачанные образы перечисляет docker images, а освободить место от неиспользуемых образов и остановленных контейнеров помогает docker system prune. Эти команды образуют повседневный набор администратора Docker: с их помощью вы видите, что запущено, читаете диагностику и держите диск в чистоте, не давая забытым образам копиться гигабайтами.
Запускаем Docker без sudo
Постоянно писать sudo перед каждой командой docker неудобно. Добавьте своего пользователя в группу docker, и тогда команды можно выполнять напрямую:
sudo usermod -aG docker $USER
После этой команды нужно выйти из сессии и зайти заново (или выполнить newgrp docker), чтобы изменение членства в группе вступило в силу. Важно понимать нюанс безопасности: члены группы docker фактически получают права root на сервере, потому что через контейнеры можно смонтировать любую часть системы. Поэтому добавляйте в эту группу только доверенных пользователей и относитесь к такому доступу так же серьёзно, как к sudo. На личном сервере это оправданное удобство, но на машине с несколькими пользователями лишний раз подумайте, кому его давать.
Собираем связки через Docker Compose
Реальные приложения редко состоят из одного контейнера: обычно это веб-сервер, база и кэш вместе. Управлять ими по отдельности утомительно — для этого есть Compose. Вы описываете все сервисы в одном файле compose.yaml, а потом поднимаете весь набор одной командой:
docker compose up -d
Флаг -d запускает контейнеры в фоне. В файле compose.yaml для каждого сервиса указывают образ, порты, переменные окружения и тома для хранения данных. Такой файл — это исполняемое описание всей вашей инфраструктуры: его удобно хранить в системе контроля версий, переносить между серверами и разворачивать заново одной командой. Остановить всё так же просто — docker compose down. Именно Compose превращает Docker из инструмента для одиночных контейнеров в удобное средство развёртывания полноценных приложений. С этого момента у вас есть всё для запуска практически любого контейнеризованного проекта.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS на Ubuntu 24.04Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Частые вопросы
Docker или docker.io из репозитория Ubuntu?
Для боевого сервера предпочтителен официальный docker-ce: он свежее, регулярно обновляется и включает встроенный Compose. Пакет docker.io проще ставится, но часто отстаёт по версии.
Данные в контейнере пропадают после перезапуска?
Да, если не использовать тома. Всё, что должно сохраняться (базы, загрузки), выносите в именованные тома или монтируйте в папку хоста, тогда данные переживут пересоздание контейнера.
Сколько ресурсов нужно под Docker?
Сам движок почти ничего не потребляет, всё зависит от контейнеров. Для пары лёгких сервисов хватает 1–2 ГБ RAM, под тяжёлые базы берите тариф с запасом памяти.
Как оплатить VPS под Docker из России?
У MAATRIX доступна оплата картой российского банка, по СБП, криптовалютой и токеном MAAT — иностранная карта не требуется.
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.