Как запускать Docker и Portainer на VPS (Руководство 2026)

Опубликовано: от Dallas Kashuba
Как запускать Docker и Portainer на VPS (Руководство 2026) thumbnail

Ты когда-нибудь слышал о Dockerception?

Ну что ж, держи свою шляпу. Мы идем в кроличью нору.

Portainer, веб-интерфейс, который ты собираешься установить поверх Docker, сам является Docker-контейнером.

Это инструмент, который работает на том, чем он управляет. Ты запускаешь его одной строкой docker run, и первое, что он делает — это достигает через маленькое отверстие в хосте (файл сокета) и просит Docker демон показать ему все другие контейнеры, включая самого себя. Из этой вкладки браузера ты можешь обновить Portainer. Перезапустить Portainer. И управлять всеми твоими другими Docker контейнерами.

Интерфейс, на который ты смотришь, находится в одном клике от удаления интерфейса, на который ты смотришь.

На VPS, где ты уже платишь за сервер и уже знаком с SSH, Portainer легко интегрируется поверх Docker, не изменяя работу системы под ним.

Вот значение.

Компьютер с 4 ГБ ОЗУ запускает Docker, Portainer и небольшой набор самостоятельно размещаемых приложений без особых усилий. И это стоит примерно как пара подписок на стриминг в месяц. Достаточно, чтобы управлять домашней автоматизацией, хранить семейные фото, использовать ИИ-помощника и запустить тот самый информационный бюллетень, о котором ты давно говоришь — все на одном сервере, который действительно твой.

Вот как его запустить, защитить и начать получать выгоду.

Что Такое Portainer?

Архитектура Portainer, показывающая подключение сокета Docker к portainer.io в рамках VPN для удаленного управления Docker через браузер.

Portainer — это веб-интерфейс, который работает в качестве контейнера Docker и управляет другими контейнерами через сокет Docker.

Это по сути браузерный frontend для тех же команд Docker, которые ты бы вводил вручную, плюс управление стеком, управление доступом на основе ролей (если ты обновишься), и панель управления для просмотра CPU и памяти.

Сокет-соединение — это то, что заставляет его работать. Привязка выглядит как -v /var/run/docker.sock:/var/run/docker.sock в команде установки, и именно эта строка выполняет всю основную работу. Без неё Portainer — это пользовательский интерфейс для пустого Docker-хоста. С ней Portainer становится пультом дистанционного управления Docker-хоста.

Одна вещь, о которой следует помнить: любой процесс, который может обратиться к /var/run/docker.sock, фактически может выполнить любые действия с правами root на хосте. Это функция, когда это делает Portainer, и проблема, когда это какой-то контейнер, который ты запустил на прошлой неделе и забыл, что дал ему доступ к сокету.

Рассматривайте привязку сокета как привилегированную возможность и проверяйте каждый другой контейнер, который хочет её получить.

Получайте контент прямо в свой почтовый ящик

Подпишитесь сейчас, чтобы получать все последние обновления прямо в свой почтовый ящик.

Нужен Ли Тебе Portainer, Если У Тебя Уже Есть Docker?

Неа. Docker прекрасно работает из терминала, и многие люди запускают несколько контейнеров на протяжении лет, не устанавливая поверх них пользовательский интерфейс.

Тебе нужен Portainer, если:

  • Ты будешь жонглировать более чем двумя или тремя Docker контейнерами через разные приложения.
  • Ты бы предпочёл нажать «перезапустить», чем перепечатывать команду Compose в 11 вечера. 
  • Ты делаешь общий доступ с тем, кто не живёт в терминале. 
  • Ты хочешь развёртывать обновления стека из Git репозитория без написания скрипта развёртывания. 

Пропусти Portainer, если:

  • Ты запускаешь один или два контейнера, которые редко изменяются. 
  • Ты уже хорошо знаком с Docker Compose и рад оставаться с ним.

Docker настолько распространён, что это уже не маргинальное решение. Согласно Опросу разработчиков Stack Overflow 2025 года, Docker является самой популярной платформой для контейнеров среди разработчиков с долей использования более 70% — это самый значительный скачок среди всех технологий, которые отслеживает опрос. У проекта Portainer примерно 37 000 звёзд на GitHub.

Существуют и другие варианты. Coolify углубляется в абстракции в стиле PaaS, а Dokploy находится в аналогичной области с меньшим объемом — но Portainer — это то, за чем обращаются в первую очередь большинство руководств по установке.

Если ты живёшь в tmux и используешь одно приложение, закрой эту вкладку. У тебя всё в порядке. Если ты управляешь четырьмя самостоятельно размещёнными приложениями и дважды в этом месяце искал в Google, «Что такое Docker журналы?», продолжай читать.

Какой VPS Тебе Нужен, Чтобы Запустить Docker и Portainer?

4 ГБ VPS удобно управляют Portainer плюс небольшой стек контейнеров для побочных проектов.

Portainer рекомендует использовать хост с минимум 2 ГБ RAM и 1 CPU ядром, хотя сам процесс Portainer Server находится в режиме ожидания около 100 МБ. Демон Docker добавляет несколько сотен МБ накладных расходов, прежде чем начнут работать ваши приложения.

Вот как это соотносится с реальными рабочими нагрузками:

Таблица сравнения требований к загрузке VPS: одно приложение требует 4 GB, Nextcloud требует 8 GB, GitLab с CI/CD требует 16 GB RAM.

В DreamHost наш Self-Managed VPS предлагает четыре тарифа на базе RAM (Stack 4, 8, 16 и 32), причём начальный тариф Stack 4 идеально подходит для такого рода небольших Docker-хостов. (И да, в комплекте идут NVMe-накопители и полный доступ к root.)

Если ты сомневаешься в том, стоит ли время на самостоятельный хостинг, то Stack 4 — это размер, при котором математика начинает работать в твою пользу с первого дня.

Одно замечание по хранению: Объем хранилища Portainer минимален — он хранит только собственную базу данных конфигурации. Собственная документация Portainer рекомендует производительность уровня SSD (≈3.5 МБ/с продолжительностью, более 30,000 IOPS, <10ms задержка записи), что любой современный диск NVMe обеспечивает с лёгкостью. Диск становится настоящей проблемой только если вы запускаете контейнеры, насыщенные базами данных, такие как Postgres или MySQL, вместе с ним. Если ваш VPS будет на вращающемся диске в 2026 году, интерфейс пользователя Portainer начнет тормозить задолго до того, как станет проблемой оперативная память. Наш совет: обновите диск до тарифного плана.

Как Установить Docker И Portainer На VPS?

Форма начальной настройки Portainer.io для создания учётной записи администратора с именем пользователя, паролем, требующим минимум 12 символов, и необязательным сбором статистики.

Это занимает шесть шагов и примерно 30 минут, большую часть времени приходится ждать загрузки изображений.

1. Выбери дистрибутив Linux

Ubuntu 22.04 или 24.04 LTS — это путь наименьшего сопротивления. Ubuntu используется по умолчанию на самоуправляемых VPS DreamHost, и большинство фрагментов установки Docker и темы помощи сообщества предполагают его использование. Debian и AlmaLinux тоже подходят.

Не уверен, какую версию Ubuntu ты используешь? Узнай пять способов проверки.

2. Установка Docker из официального репозитория

Не устанавливай apt install docker.io. Это загрузит более старую версию Docker из архива Ubuntu.

Вместо этого используйте собственный apt репозиторий Docker согласно официальной документации по установке Docker, который добавляет GPG ключ Docker, репозиторий и docker-ce вместе с плагином Compose за один раз.

3. Проверь, что Docker работает

Запусти docker run hello-world.

Если ты не получаешь сообщение «Hello from Docker!», исправь демона перед тем, как добавлять поверх него Portainer.

4. Создай постоянный том для данных Portainer

Далее, запусти docker volume create portainer_data.

Хранение базы данных Portainer на Docker-томе (не внутри контейнера) означает, что обновление Portainer не удалит вашу конфигурацию.

5. Запустить Portainer Community Edition

Используй официальную команду установки из документации по установке Portainer для Linux:

  docker run -d 
  -p 8000:8000 
  -p 9443:9443 
  --name portainer 
  --restart=always 
  -v /var/run/docker.sock:/var/run/docker.sock 
  -v portainer_data:/data 
  portainer/portainer-ce:lts

Давайте разберем это построчно:

  • -d запускает в фоновом режиме.
  • -p 9443:9443 это веб-интерфейс Portainer по HTTPS.
  • -p 8000:8000 это туннель для Edge Agent; тебе это нужно только если ты собираешься подключать удаленные среды (Docker, Swarm или Kubernetes) через Edge Agents позже, так что убери это при установке на одном хосте.
  • --restart=always возвращает Portainer после перезагрузки.
  • -v флаги для привязки сокета и постоянного тома из шага 4.
  • :lts тег указывает на канал долгосрочной поддержки Portainer — стабильную, рекомендуемую для производства сборку.

6. Откройте пользовательский интерфейс и создайте свою учётную запись администратора

Укажи в браузере https://YOUR_VPS_IP:9443.

Пройди через предупреждение о самоподписанном сертификате. Ты попадешь на экран «создания первоначального администратора». Выбери имя пользователя, которое не является admin, установи надежный пароль и сохраните его в надежном месте. И… ты внутри!

Почему Portainer Просто Завис?

Потому что Portainer ждёт ровно пять минут, чтобы кто-то заявил права на него при первой установке. Если никто не делает этого, он блокирует доступ.

Дословно из собственного FAQ Portainer:

«В качестве меры предосторожности, когда Portainer устанавливается впервые, он будет ожидать в течение 5 минут создания учетной записи администратора. Если учетная запись не будет создана в течение этих 5 минут, сервер Portainer перестанет принимать запросы.«

Перевод: если ты потратил Шаг 5 на приготовление сэндвича, твоя установка теперь отказывается с тобой разговаривать — и ты ничего не сделал неправильно.

Решение простое. Запусти docker restart portainer.

Это запускает контейнер снова, предоставляет тебе еще пяти минутное окно и выносит на экран создания админа. Повторяй по мере необходимости. Добро пожаловать в self-hosting.

Если ты автоматизируешь установку для группы (Ansible, Terraform, процесс развертывания), Portainer принимает флаг --admin-password-file при запуске, который полностью обходит таймер, создавая администратора из файла при первом запуске. Документ по установке описывает синтаксис. Для одноразовой установки на VPS, трюк с перезапуском подойдет.

Как Предотвратить Обход Docker’ом Вашего Файервола?

Сравнение брандмауэра Docker: без правила DOCKER-USER доступ к контейнеру не ограничен, с правилом DOCKER-USER добавляется защита брандмауэра.

Это удивит людей не только во время разработки, но и в производстве — так что внимание.

Когда ты выполняешь docker run -p 80:80, опубликованный порт становится доступным из интернета, даже если ufw status показывает, что порт 80 заблокирован. Docker маршрутизирует трафик контейнера в таблице NAT, что означает, что пакеты перенаправляются до того, как они достигнут цепочек INPUT и OUTPUT, которые использует UFW.

UFW не сломан. Он просто стоит в неправильном коридоре.

Решение, которое Docker рекомендует, — это цепочка DOCKER-USER iptables, зарезервированная для правил администратора, чтобы Docker не перезаписывал их при перезапуске. (Правила не сохраняются после полной перезагрузки хоста — сохраните их с помощью iptables-persistent или systemd-сервиса; ufw-docker обрабатывает это за тебя.) Инструмент, ставший стандартом сообщества для интеграции UFW с DOCKER-USER, — это chaifeng/ufw-docker, который автоматизирует создание правил.

Установи его, а затем проверь с помощью сканирования портов снаружи твоего VPS, что порты, которые ты считаешь закрытыми, действительно закрыты.

Я видел, как это поймало в ловушку опытного инженера дважды за одну неделю, сначала на личном компьютере, затем у клиента. UFW говорил одно, общедоступный интернет говорил другое, а правда была в iptables.

Для Portainer в частности, порт 9443 является открытым, что означает, что административный интерфейс доступен из любой точки публичного интернета с момента запуска контейнера. Два разумных пути: ограничить 9443 с помощью правил DOCKER-USER (разрешить доступ только с IP дома или офиса), или использовать VPN-туннель, например WireGuard, так что интерфейс вообще не будет иметь публичного IP.

Что Следует Заблокировать Сразу После Первого Входа?

Ты уже внутри. Пять важных шагов, которые стоит предпринять, прежде чем закрыть эту вкладку браузера, согласно руководству по безопасности от Portainer:

  • Использовать только HTTPS. Portainer по умолчанию использует HTTPS на порту 9443, но не требует его обязательно. Переключи тумблер в Настройках, чтобы интерфейс полностью отказывался от HTTP.
  • Заменить самоподписанный сертификат. Загрузи сертификат, который ты сгенерировал, или используй NGINX reverse proxy с сертификатом Let’s Encrypt. После первого дня кликанье через предупреждение браузера каждый раз будет тем, о чём ты пожалеешь.
  • Используй настоящее имя администратора. «Admin» — это первая догадка при любой попытке подбора учётных данных. Выбери что-то, что специфично для тебя.
  • Ограничь доступ к интерфейсу через VPN. WireGuard — это рекомендуемый Portainer паттерн. Публичный 9443 с сильными учетными данными нормально. 9443, доступный только в частной сети, лучше.
  • Проведи аудит привязки сокета Docker. Любой объект с доступом на чтение к /var/run/docker.sock может выполнять любые действия от имени root на хосте. Не подключай сокет бездумно к другим контейнерам. Каждая новая привязка — это новый путь к хосту. Если контейнер утверждает, что ему нужен сокет, спроси зачем — и рассмотри использование прокси сокета, если ответ «для мониторинга».

Как Ты Реально Используешь Portainer В Повседневной Работе?

Выгода от установки Portainer наступает тогда, когда ты перестаешь использовать SSH для перезапуска неисправного контейнера и начинаешь просто нажимать кнопку. Большая выгода заключается в управлении стеком.

Стек Portainer — это многоконтейнерное приложение, определённое файлом Docker Compose. Любое приложение, которое можно описать в docker-compose.yml, можно развернуть как стек, с тремя основными маршрутами (исключая пользовательские шаблоны) согласно официальной документации по стекам:

  • Вставь Compose в интерфейс
  • Загрузи файл Compose
  • Направь Portainer на Git-репозиторий
Панель управления Portainer.io показывает детали стека с таблицей контейнеров, журналами, статистикой и элементами управления для контейнеров Docker.

Путь Git — это то, что имеет значение. Ты указываешь Portainer на публичный или аутентифицированный репозиторий и путь к docker-compose.yml. Portainer либо периодически опрашивает репозиторий (по умолчанию каждые пять минут), либо ожидает вебхук от GitHub. Когда файл Compose изменяется в исходном репозитории, Portainer автоматически загружает изменения и перезапускает развертывание.

Это саморазмещенная версия «развертывания при пуше» без необходимости платить PaaS за привилегию.

Маленькие ежедневные победы тоже важны. Представь журналы в панели вместо docker logs -f, перезапуски в один клик, перестройка стека с помощью кнопки и графики ресурсов, которые ты можешь просмотреть за три секунды вместо запуска Docker stats.

Portainer также поддерживает удаленные хосты Docker через свой Edge Agent, что позволяет размещать самохостингового AI ассистента или медиа-сервер на нескольких устройствах.

Сколько Стоит Portainer? (И Когда Бесплатное Перестаёт Быть Бесплатным?)

Portainer Community Edition бесплатен и не имеет ограничений, точка. Установка, через которую ты только что прошёл, полностью функциональна для одного хоста с любым количеством контейнеров, которое может вместить твой VPS. Нет ограничения по узлам, без срока действия, без назойливых экранных уведомлений.

ИзданиеСтоимостьУзлыЛучше всего подходит для
Коммьюнити ИзданиеБесплатно, с открытым исходным кодомНеограниченноЛичные проекты, домашние лаборатории, хостинг на одном VPS
Бизнес Издание (Версия 3)Бесплатно на постоянной основеДо 3Маленькие домашние лаборатории, которым нужны RBAC и журналы аудита
Бизнес СтартОт $99/мес5, 10 или 15Маленькие команды, управляющие реальной инфраструктурой
Бизнес РостОт $199/месДо 25Растущие команды, нуждающиеся в поддержке 9×5
ПредприятиеПо запросуНеограниченноТребования к соответствию и круглосуточная поддержка

Постоянный бесплатный тариф с тремя узлами (называемый Take 3) стоит знать: ты продлеваешь лицензию ежегодно без стоимости, пока твое количество узлов не превышает трех.

Это подходящий тарифный план для большинства домашних лабораторий и небольших команд, которые хотят управление доступом на основе ролей (RBAC), журналы аудита и журналирование активности без оплаты. Далее, Business Starter стоит $99/мес на странице ценовых предложений Portainer для бизнеса для 5/10/15 узлов; Scale стоит $199/мес до 25 узлов; а Enterprise предоставляется по запросу.

Для почти всех, кто читает это, лучший выбор — Community Edition. Это подойдёт для одно-VPS хостинга на весь срок службы устройства. Business-версии оправдывают себя только когда вы управляете реальными узлами, нуждаетесь в RBAC в рамках команды или требуется коммерческая поддержка для соответствия требованиям.

Добавить Portainer или Пропустить?

Вот честный ответ в двух предложениях:

✅ Если ты собираешься делиться этим сервером, развертывать из Git или запускать более трех контейнеров в год с этого момента, установи Portainer, пока хост свежий и твои привычки еще формируются вокруг него.

❌ Если ты используешь одно тихое приложение и тебе нравится работать в терминале, ты не почувствуешь недостатка в пользовательском интерфейсе, который не установил.

Настоящий вопрос не в выборе между Portainer и не Portainer. Вопрос в том, подходит ли тебе самостоятельный хостинг вообще — и ты ответил на него, открыв эту вкладку.

4 ГБ VPS, Docker и Portainer CE позволят тебе сделать больше, чем ожидают большинство людей — стек автоматизации, сервер для фотографий, платформу для рассылки и локального ИИ-ассистента — и это всё за меньшие деньги, чем ты, вероятно, платишь за две стриминговые услуги, которыми почти не пользуешься.

Это неплохая сделка для коробки, которая действительно принадлежит тебе.

Часто Задаваемые Вопросы О Docker и Portainer

Для чего используется Portainer?

Portainer используется для управления контейнерами Docker, Docker Swarm и Kubernetes через веб-интерфейс. Он работает как контейнер Docker, подключается к сокету Docker хоста и предоставляет вам вид в браузере и возможности управления всеми остальными контейнерами на хосте — запуск и остановка контейнеров, развертывание стеков из нескольких контейнеров, просмотр журналов и управление доступом пользователей без использования SSH.

Нужен ли мне Portainer, если у меня есть Docker?

Нет, тебе не нужен Portainer для использования Docker. Docker полностью работает через терминал, и многие пользователи никогда не устанавливают графический интерфейс.

Portainer оправдывает свое присутствие, когда ты управляешь более чем двумя или тремя контейнерами, делишься доступом с кем-то, кто не работает в терминале, или развертываешь обновления стека из Git-репозитория. Пропусти это, если ты работаешь с одним или двумя стабильными контейнерами и тебе комфортно с Docker Compose.

На Каком Порту Работает Portainer?

Portainer по умолчанию работает на порту 9443 для доступа к веб-интерфейсу через HTTPS, а также на порту 8000 для туннеля Edge Agent, если вы позже подключите удаленные хосты Docker. Порт 8000 является необязательным при установке на одном хосте; вы можете убрать флаг -p 8000:8000 из команды установки, не влияя на локальный интерфейс. Значения по умолчанию взяты непосредственно из официальной документации по установке Portainer для Linux.

Сколько RAM требуется для Portainer?

Сам Portainer потребляет около 100 МБ в режиме ожидания, прежде чем вы загрузите что-либо ещё. Добавьте несколько сотен МБ для демона Docker, а затем определяйте размер в зависимости от того, что вы фактически запускаете.

В DreamHost мы обеспечиваем начальный уровень Self-Managed VPS с 4 ГБ RAM именно для таких задач — достаточно ресурсов для Portainer плюс небольшой стек контейнеров для сайд-проектов, таких как Ghost, n8n, база данных Postgres и обратный прокси.

Portainer бесплатен?

Да. Community Edition Portainer абсолютно бесплатна, а Business Edition также имеет бесплатный уровень на 3 узла под названием Take 3, который ежегодно продлевается без оплаты, если у вас не более трёх узлов. При использовании более трех узлов цена Business-плана начинается от 99 долларов в месяц на плане Starter согласно странице бизнес-тарифов Portainer.

В чем разница между Portainer CE и Business Edition?

Portainer Community Edition бесплатен, с открытым исходным кодом и полностью оснащён для личного использования.

Бизнес-версия добавляет управление доступом на основе ролей, журналы аудита, регистрацию активности и коммерческую поддержку, и начинается от $99/мес за 5 узлов после постоянно бесплатного трёхузлового уровня Take 3.

Может ли Portainer управлять несколькими хостами Docker?

Да, Portainer может управлять несколькими хостами Docker с помощью Edge Agents, которые работают на каждом удалённом хосте и опрашивают центральный сервер Portainer на порту пользовательского интерфейса, при этом порт 8000 используется для открытия безопасного туннеля для управляющих команд. Для одиночных самостоятельных VPS-хостеров это избыточно. Для тех, кто управляет тремя или более коробками, которые делят плоскость управления, вот почему 8000 присутствует в строке установки.

Обходит ли Docker UFW на VPS?

Да, Docker по умолчанию обходит UFW, потому что Docker управляет трафиком контейнеров на уровне NAT iptables, который находится перед цепочками INPUT и OUTPUT UFW.

Согласно документации Docker по фильтрации пакетов, «Пакеты перенаправляются до того, как они достигнут цепочек INPUT и OUTPUT, которые использует UFW.» Решение — это цепочка iptables DOCKER-USER, и стандартный инструмент для интеграции UFW с ней — это chaifeng/ufw-docker.

Self-Managed VPS

Владейте всем своим стеком. Приложения, ИИ, базы данных и не только.

Храните все учётные данные и переписку на сервере, который контролируете вы, — со скоростью NVMe и безлимитным трафиком из коробки.

Изучить планы самоуправляемого VPS