VPS · Гайд

Как установить Docker на Ubuntu

Обновлено October 11, 2026 4 мин чтения

На этой странице
  1. Перед началом
  2. Шаг 1: удалите конфликтующие пакеты
  3. Шаг 2: добавьте репозиторий Docker
  4. Шаг 3: установите Docker и Compose
  5. Шаг 4: права доступа и ротация логов
  6. Первый файл Compose
  7. Docker и ufw: ловушка файрвола
  8. Docker на VPS от HytHost
  9. FAQ

Docker запускает приложения в контейнерах: каждый содержит всё необходимое, поэтому работает одинаково и на ноутбуке, и на сервере. Сайты, базы данных, боты и игровые серверы запускаются одной командой или одним файлом Compose.

В этом руководстве мы установим Docker Engine и Docker Compose на Ubuntu 24.04 или 22.04 из официального репозитория Docker, а затем разберём настройки, важные на реальном сервере: права доступа, логи и файрвол.

Перед началом

  • Поддерживаемая Ubuntu: Docker поддерживает 64-битные версии Ubuntu 26.04, 24.04 и 22.04 LTS. Проверьте свою командой cat /etc/os-release.
  • Сервер на KVM, а не контейнер: Docker нужны собственные возможности ядра. Он работает на любом VPS на KVM, но часто не запускается на контейнерных тарифах (OpenVZ или LXC).
  • Root или пользователь с sudo. Команды ниже используют sudo; если вы вошли как root, его можно опустить.

На серверах не используйте пакет docker.io из репозитория Ubuntu и версию из Snap: в репозиторий Docker новые версии попадают первыми, и именно его использует официальная документация Docker.

Docker нужна настоящая виртуальная машина: тарифы HytHost KVM VPS с Ubuntu и полным root-доступом — от €2.92/мес.

Тарифы VPS

Шаг 1: удалите конфликтующие пакеты

Если вы раньше устанавливали Docker из другого источника, сначала удалите эти пакеты. На свежем сервере apt просто сообщит, что ни один из них не установлен:

sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc docker-buildx podman-docker containerd runc | cut -f1)

Образы и тома в /var/lib/docker/ при этом не удаляются.

Шаг 2: добавьте репозиторий Docker

Эти команды из документации Docker добавляют ключ подписи Docker и его apt-репозиторий для вашей версии Ubuntu:

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

sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

sudo apt update

Шаг 3: установите Docker и Compose

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

Так устанавливаются Docker Engine, консольная утилита, сборщик Buildx и плагин Compose. Проверьте, что всё работает:

sudo docker run hello-world
docker compose version

Первая команда скачивает крошечный тестовый образ и выводит приветственное сообщение. В Ubuntu Docker запускается автоматически при загрузке, так что включать ничего не нужно.

Compose — это команда docker compose, через пробел. Старая docker-compose через дефис — это устаревшая первая версия; руководства, которые всё ещё её используют, работают и с новой командой.

Шаг 4: права доступа и ротация логов

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

sudo usermod -aG docker $USER

Учтите: сам Docker предупреждает, что эта группа даёт привилегии уровня root — любой её участник может управлять всем сервером. Добавляйте только тех, кому вы доверили бы root.

Ограничьте размер логов. По умолчанию логи контейнеров растут без ограничений и могут заполнить диск. Создайте /etc/docker/daemon.json:

{
  "log-driver": "json-file",
  "log-opts": { "max-size": "10m", "max-file": "3" }
}

Затем выполните sudo systemctl restart docker. Ограничение действует для контейнеров, созданных после изменения, поэтому пересоздайте существующие.

Первый файл Compose

Compose описывает ваши контейнеры в одном файле. Создайте папку с файлом compose.yaml:

services:
  web:
    image: nginx:stable
    ports:
      - "127.0.0.1:8080:80"
    restart: unless-stopped

Запустите его командой docker compose up -d, проверьте состояние через docker compose ps и посмотрите логи через docker compose logs. restart: unless-stopped поднимает контейнер после сбоя или перезагрузки. Порт привязан к 127.0.0.1 намеренно — почему, объясняет следующий раздел.

Docker и ufw: ловушка файрвола

На этом попадаются почти все. Когда вы публикуете порт, например -p 8080:80, Docker добавляет собственные правила файрвола, которые применяются раньше правил ufw. Порт открыт в интернет, даже если ufw показывает, что он закрыт.

  • Привязывайте порты к localhost, если они нужны только самому серверу, например базе данных или приложению за reverse proxy: 127.0.0.1:8080:80.
  • Вообще не публикуйте порты баз данных; пусть контейнеры связываются друг с другом через сеть Docker.
  • Для фильтрации по адресу источника добавляйте правила в цепочку iptables DOCKER-USER, которую Docker проверяет раньше своих.

То же касается игровых серверов, запущенных в Docker; см. как настроить VPS для игровых серверов.

Docker на VPS от HytHost

VPS-тарифы HytHost работают на KVM, поэтому у каждого VPS своё ядро, и Docker запускается без ограничений. Выберите Ubuntu 24.04 или 22.04 при заказе, подключитесь по SSH и выполните шаги выше. Вы получаете полный root-доступ, SSD-хранилище и защиту от DDoS, а позже можете перейти на тариф побольше, когда ваших контейнеров станет больше.

FAQ

Частые вопросы

Docker поддерживает 64-битные версии Ubuntu 26.04, 24.04 и 22.04 LTS. Другие системы на базе Ubuntu, например Linux Mint, официально не поддерживаются.

Не на рабочем сервере. Docker указывает, что этот скрипт предназначен для сред разработки и не рекомендуется для продакшена; к тому же он может перескочить на новую мажорную версию. Используйте вместо него способ с репозиторием.

docker-compose через дефис — старая, устаревшая версия. Сегодня Compose — это плагин Docker, который вызывается как docker compose и устанавливается пакетом docker-compose-plugin.

Порты, опубликованные Docker, обходят ufw. Привяжите порт к 127.0.0.1, если он должен оставаться локальным, или фильтруйте его в цепочке DOCKER-USER.

На VPS с KVM — да. Контейнерные VPS-тарифы, например OpenVZ, часто не могут запускать Docker или требуют особых настроек со стороны провайдера.

Запускайте контейнеры на VPS

Тарифы HytHost KVM VPS запускают Docker без ограничений, с полным root-доступом и Ubuntu 24.04, от €2.92/мес.

Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hours

Этот гайд был полезен?