Мануал, не курс DevOps
Как выбрать и поднять Docker VPS, не купив картинку «контейнеры из коробки»
Docker на виртуалке — это не отдельный вид хостинга из рекламы. Это либо панель, которая запускает ваши образы, либо обычный KVM, на котором крутится демон. Ниже — порядок выбора и минимальный чеклист, чтобы стек не умер на следующий день после compose up.
Кто что продаёт в 2026 — в топе Docker-хостингов. Железо без предустановки — KVM от 4 ГБ.
1. Сначала решите, какой продукт вам нужен
Три разные покупки путают в одном запросе «docker хостинг»:
- Хостинг контейнеров (CaaS). Нет своей ОС. Заливаете образ или Git, платформа поднимает процесс, даёт домен и логи. Пример: DockerHosting.ru, Dockhost.
- Docker VPS. Полноценная машина, но Docker CE, Compose и часто Portainer уже стоят. Пример: DockerVPS.ru, готовые образы SpaceWeb и Timeweb.
- Обычный KVM. Ставите демон сами за пятнадцать минут. Дороже по времени, дешевле по сюрпризам: свой диск, свой firewall, свой бэкап.
Если не хотите SSH — первый вариант. Если хотите docker compose и root — второй или третий. Если нужен Kubernetes на трёх нодах — это уже не этот мануал, смотрите Selectel / Timeweb / DigitalOcean managed.
2. Только KVM. OpenVZ для Docker не существует «почти»
Docker внутри контейнера с чужим ядром — лотерея: cgroup, overlay, iptables, privileged. Хостер может запретить Docker в оферте и будет прав. Берите KVM. LXC как «VPS» — тот же разговор про общее ядро.
Nested virtualization на облаках вроде Hetzner обычно включена. На дешёвых KVM из каталогов иногда выключена — если планируете свои ВМ внутри ВМ, спросите в тикете до оплаты. Для обычного Docker это не нужно: демону достаточно своего ядра, не гипервизора в гипервизоре.
3. Память важнее ядер, диск важнее «безлимита»
Контейнер ест RAM так же, как процесс. Лимиты в Compose не создают память из воздуха.
- один бот или маленький API — 2 ГБ, без базы на этой же машине;
- приложение + Postgres + Redis — от 4 ГБ;
- стеки вроде n8n, GitLab, несколько сайтов, «как на проде» — от 8 ГБ.
Образы и слои живут на диске. 15 ГБ NVMe хватает на два-три сервиса и кончается на четвёртом pull. Чистите docker image prune, но закладывайте диск с запасом. NVMe здесь важнее, чем SATA «на 200 ГБ»: база в volume любит случайные чтения.
«Безлимит трафика» на 30 Мбит превращает docker pull в вечер. Смотрите Мбит/с, не слово на баннере. Срез канала: тарифы без лимита — всё равно читайте порт.
4. Portainer — удобство, не замена пониманию
Portainer экономит час на старте: логи, рестарт, деплой stack из YAML. Он не отменяет volumes, сети и то, что панель на :9000/9443 нельзя светить в интернет без пароля и HTTPS.
Рабочая схема на Docker VPS:
- SSH-ключ, не пароль из письма навсегда.
- Firewall: 22, 80, 443. Portainer — только с вашего IP или через SSH-туннель.
- Один reverse-proxy (Caddy или Traefik) перед стеками, сертификаты там.
- Данные только в named volumes или в каталог на диске, который попадает в бэкап.
CLI и Compose достаточны, если панель не нужна. Не ставьте и Portainer, и три панели хостера «на всякий случай».
5. Volumes, логи и бэкапы — это и есть прод
Контейнер можно убить и поднять за секунду. Данные в overlayfs после docker compose down -v не возвращаются. Правило: код в образе, состояние на volume, дамп volume — отдельно от снимка диска хостера.
- Postgres: volume + ночной dump, не только «снимок VPS раз в неделю».
- Загруженные файлы: каталог на диске или объектное хранилище, не слой контейнера.
- Логи: ротация, иначе 15 ГБ кончатся json-файлами Docker.
У узких Docker-хостингов бэкап иногда в панели. На голом KVM это ваша cron-задача или услуга хостера. Снимок диска не заменяет dump базы.
6. Пошагово: голый KVM за вечер
Если берёте не готовый Docker VPS, а машину из каталога:
- Фильтр: KVM, от 4 ГБ RAM, NVMe, страна под аудиторию. Готовый срез.
- ОС: Ubuntu LTS или Debian Stable. ISO не обязателен.
- Обновления, пользователь с sudo, ключ, отключить парольный root если хостер позволил.
- Поставить Docker Engine и плагин Compose по официальной инструкции под ваш дистрибутив — не из случайного скрипта в Telegram.
- Проверка:
docker run --rm hello-world, затем вашcompose.yml. - Прокси на 80/443, контейнеры во внутренней сети Compose, наружу только прокси.
- Бэкап volume в первый же день, не «когда заработает».
На DockerHosting и DockerVPS шаги 3–4 уже сделаны: остаётся заливка стека и закрытие панелей.
7. Типичные ошибки
- OpenVZ «потому что дешевле» — Docker не стартует или падает на iptables.
- 1 ГБ RAM и Postgres в том же compose — OOM killer, а не «медленный сайт».
- Порты 3306 и 6379 в интернет «для удобства».
- Образы с
latestбез пина версии: через месяц прод сам себя обновил. - Один VPS = и CI, и база, и бэкап на тот же диск.
8. Куда идти
Нужен готовый Docker сегодня — dockerhosting.ru или dockervps.ru, сравнение с облаками в обзоре 2026. Нужна своя машина — каталог KVM под Docker и общая памятка как выбрать VPS.