Краткий ответ: Устанавливайте Docker Engine из официального репозитория Docker (не из типовых пакетов дистрибутива) — добавьте репозиторий, затем sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin (или эквивалент через dnf) и проверьте командой sudo docker run hello-world.

Обзор

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

Что нужно иметь

  • 64-битный Linux-сервер с доступом root/sudo; рекомендуется 1 ГБ+ RAM.
  • Уберите старые пакеты, если они есть: sudo apt remove docker docker-engine docker.io containerd runc.

Пошаговая инструкция

  1. Добавьте официальный репозиторий Docker (пример для Ubuntu; Debian/Alma/Rocky — по той же схеме с docs.docker.com):
    sudo apt update && sudo apt -y 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
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo $VERSION_CODENAME) stable" | sudo tee /etc/apt/sources.list.d/docker.list
  2. Установите Docker Engine и плагин Compose:
    sudo apt update
    sudo apt -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  3. Включите и проверьте:
    sudo systemctl enable --now docker
    sudo docker run hello-world
    docker compose version
  4. (Опционально) запуск docker без sudo — учтите, это даёт пользователю власть, эквивалентную root:
    sudo usermod -aG docker $USER
    # log out and back in

Типичные проблемы

  • permission denied на сокете: вы пропустили шаг с группой или не перезашли в сессию.
  • Docker обходит UFW: опубликованные порты (-p 80:80) открываются напрямую через iptables — публикуйте только то, что должно быть публичным, а внутренние сервисы биндите к 127.0.0.1:PORT.
  • Диск заполняется: чистите неиспользуемые образы/тома через docker system prune (просмотрите список перед подтверждением).

Когда обращаться в поддержку

Контейнерные нагрузки — ваша зона; по платформенным проблемам или дополнительным ресурсам для более тяжёлых стеков откройте тикет.

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

Зачем устанавливать Docker из официального репозитория?

Пакеты дистрибутивов часто сильно отстают. Собственный репозиторий Docker поставляет актуальные поддерживаемые релизы Engine вместе с плагинами Compose и Buildx.

Безопасно ли добавлять пользователя в группу docker?

Это удобно, но даёт власть, эквивалентную root, поскольку контейнеры могут монтировать файловую систему хоста. Добавляйте в группу docker только доверенных администраторов.

Почему порты контейнеров открыты несмотря на UFW?

Docker программирует iptables напрямую, обходя UFW для опубликованных портов. Публикуйте только публичные сервисы, а внутренние биндите к 127.0.0.1, например «-p 127.0.0.1:5432:5432».

Похожие статьи

Готовы начать? Заказать VPS в Cloud2Y →

Помог ли вам данный ответ? 0 Пользователи нашли это полезным (0 голосов)