Краткий ответ: Устанавливайте 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.
Пошаговая инструкция
- Добавьте официальный репозиторий 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 - Установите Docker Engine и плагин Compose:
sudo apt update sudo apt -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin - Включите и проверьте:
sudo systemctl enable --now docker sudo docker run hello-world docker compose version - (Опционально) запуск 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 →
