Docker на VPS: установка, порты, volumes и логи
Практическая база Docker на VPS: официальная установка, compose, volumes, published ports, firewall, systemd, логи и перенос контейнеров.
Содержание
Docker удобен на VPS, когда контейнеры описаны как инфраструктура, а не как случайные команды из истории shell.
Установка и обновления
Для Ubuntu используйте официальную инструкцию Docker Engine и фиксируйте источник пакетов. После установки проверьте daemon, compose plugin и права пользователя.
Порты и IPv4/IPv6
Публикуйте наружу только нужные порты. Если сервис должен быть доступен только через reverse proxy, не открывайте его напрямую на 0.0.0.0.
Firewall и UDP
Docker может менять правила фильтрации. Проверяйте, виден ли опубликованный порт снаружи, и отдельно тестируйте UDP, если контейнер обслуживает VPN или realtime-протокол.
Volumes, env и секреты
Данные должны жить в named volumes или понятных каталогах. Не храните приватные SSH-ключи и токены в образе; используйте env-файлы с ограниченными правами.
systemd и логи
Docker daemon управляется systemd, а приложения смотрят через docker logs или централизованный лог-драйвер. Для compose-проекта полезен unit, который поднимает стек после reboot.
Перенос и репутация IP
Для переноса нужны compose-файлы, volumes, env и список портов. После запуска на новом VPS проверьте IP-репутацию, DNS, TLS и доступность IPv6.
Проверено на практике
- Дата проверки: 2026-05-12
- Среда: Ubuntu/Debian Linux, VPS-провайдеры с публичным IPv4/IPv6
- Версии: актуальная документация Ubuntu/Debian/OpenSSH/systemd/UFW на дату проверки
Мини-чеклист
- Установить Docker из официального источника
- Описать стек через Compose
- Зафиксировать volumes и env
- Проверить опубликованные порты
- Сверить Docker с UFW
Частые ошибки
- Запускать контейнеры длинными docker run без фиксации
- Публиковать внутренние сервисы наружу
- Хранить секреты в образах
- Не делать backup volumes
- Не проверять UDP после запуска
Источники и документация
FAQ
Нужно ли ставить Docker Desktop на VPS?
Нет. На сервере обычно ставят Docker Engine и Compose plugin.
Почему UFW закрыт, а контейнер доступен?
Docker работает с netfilter и может публиковать порт не так, как ожидается от обычного процесса.
Что переносить при миграции Docker?
Compose-файлы, env, volumes, reverse proxy, firewall-правила и DNS-записи.
Хотите перейти сразу к рабочему доступу?
Если сценарий уже ясен и не хочется проходить все шаги вручную, оформите доступ и проверьте подключение на своем устройстве.
Оформить доступ