VDS · Docker и контейнеры

Docker: установка на машину

Как правильно поставить Docker на Debian, Ubuntu и AlmaLinux, чем официальный репозиторий лучше пакета из системы и что проверить сразу после установки.

Обновлено 23 августа 2026 г.

Docker упаковывает приложение вместе со всем окружением в контейнер: не нужно подбирать версии библиотек, а перенос на другую машину сводится к копированию файла настройки. На VDS с полным root-доступом ставится штатно.

Ставьте из официального репозитория

В системных репозиториях лежит либо старая версия, либо docker.io без плагина Compose v2. Разница ощутима: половина инструкций в интернете написана под современный docker compose, а не docker-compose.

Debian 12 и 13, Ubuntu 22.04 / 24.04 / 26.04:

sudo apt update
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo $VERSION_CODENAME) stable" | sudo tee /etc/apt/sources.list.d/docker.list
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Для Ubuntu замените debian на ubuntu в двух местах.

AlmaLinux 9 и 10, CentOS Stream 9:

sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker

Проверка

docker --version
docker compose version
sudo docker run --rm hello-world
docker info | grep -E "Storage Driver|Cgroup|Docker Root Dir"

Если hello-world скачался и вывел приветствие — всё работает. Драйвер хранения должен быть overlay2.

Работа без sudo

sudo usermod -aG docker $USER
newgrp docker

Группа docker равносильна root. Любой, кто в неё входит, может запустить контейнер с примонтированным корнем хоста и стать администратором. Добавляйте туда только тех, кому вы и так доверили бы root, — и не выдавайте её приложениям.

Что настроить сразу

Ограничьте журналы, иначе один болтливый контейнер съест диск. Создайте /etc/docker/daemon.json:

{
  "log-driver": "json-file",
  "log-opts": { "max-size": "20m", "max-file": "3" }
}
sudo systemctl restart docker

Подробнее — журналы контейнеров.

Сколько это занимает

Сам Docker — около 500 МБ, дальше растут образы и тома. На VDS-1 с диском 40 ГБ два-три сервиса помещаются, но следить за местом придётся: см. место на диске.

Частые ошибки

  • Смешали docker.io и docker-ce. Сначала sudo apt remove docker.io docker-compose, потом установка из официального репозитория.
  • Docker открыл порт мимо брандмауэра. Правила iptables Docker пишет сам, и ufw их не видит. Публикуйте порт на локальный интерфейс — -p 127.0.0.1:8080:80 — если наружу он не нужен. Подробнее в сетях Docker.
  • Забыли --now в systemctl на AlmaLinux. Служба включена, но не запущена; после перезагрузки заработает, а сейчас — нет.

Дальше: Docker Compose и тома.