Руководство4 мин чтения
Docker Compose в облаке: как запустить стек на своём сервере
Стек из docker-compose.yaml на DADA Cloud живёт на виртуальной машине: вашей или заказанной у платформы. Вы запускаете его командой docker compose up -d, платформа находит контейнеры и делает каждый сервис приложением с логами, метриками и адресом с HTTPS. Формы «вставить compose-файл» в консоли нет.
$ ssh root@<IP-вашей-VM>$ docker compose up -d✓ shop-web, shop-worker и shop-db запущены# консоль: Серверы приложений -> Нагрузки -> Обнаружить✓ найдено 3 контейнера, 1 именованный том✓ shop-web, shop-worker, shop-db стали приложениямиДля Compose нужна виртуальная машина
Приложение из образа запускается на платформе как один контейнер с одним портом. Стек из нескольких связанных сервисов так не поедет. Для него нужна виртуальная машина с Docker, которую платформа называет сервером приложений.
Есть два пути к такой машине. Свой VPS подключают по SSH: IP, пользователь, порт и приватный ключ. Платформа использует ключ один раз, ставит Docker и агент мониторинга и ключ не хранит. Либо заказывают машину у платформы: сейчас это Beget, регион ru1, фиксированные 2 vCPU, 2 ГБ памяти и 20 ГБ диска.
Дальше можно идти, когда сервер получил статус Ready: обнаружение работает через агент, а он подключается не сразу. Порядок подключения описан в руководстве про свою VM.
Запускаете как обычно, платформа подхватывает
Стек вы поднимаете сами, тем же файлом, что и локально.
$ docker compose up -d$ docker compose psПосле этого в консоли открывают сервер, вкладку «Нагрузки», и запускают обнаружение. Оно только читает: идёт через docker-прокси агента, без SSH, и ничего не меняет на машине. Вы увидите образы, порты и тома каждого контейнера.
Дальше выбираете сервисы и импортируете. Каждый становится отдельным приложением со своими логами и настройками. То же самое умеет агент: инструменты discoverAppServerWorkload и importComposeStack есть в MCP-сервере.
Данные не теряются при импорте
Именованные тома из вашего compose-файла платформа закрепляет как внешние. Первый деплой подключает существующие тома, пустой том не создаётся. База shop-db продолжает работать с теми же данными.
Переменные из .env можно передать при импорте, но они попадут в git открытым текстом, поэтому платформа требует явного согласия. Пароли лучше добавить после импорта в настройках приложения: там у переменной есть флаг секрета, и значение в таблице скрыто.
Дальше меняете стек в консоли
У приложения, пришедшего со стека, в консоли есть редактор compose.yaml: после сохранения стек пересоздаётся. Откат возвращает предыдущую зафиксированную версию файла. Перезапуск пересоздаёт контейнеры из текущей версии без загрузки образов заново.
Если приложение осталось одним целым стеком, его можно разбить на отдельные приложения. Контейнеры при этом ненадолго пересоздаются, тома сохраняются.
Адрес с HTTPS без настройки nginx
Адрес вам не нужен заранее. Платформа выдаёт имя вида <имя>.<домен платформы>, направляет его на IP вашего сервера и ставит на машину свой nginx с сертификатом Let's Encrypt. Для сервиса, который слушает только 127.0.0.1, включают режим loopback, и nginx проксирует на него.
Через MCP это инструмент attachAppServerHostname. Свой домен подключается отдельно: сначала подтверждают его TXT-записью. Привязать подтверждённый домен к приложению агент через MCP сейчас нельзя, это делают в консоли.
Частые вопросы
Можно ли вставить docker-compose.yaml в консоль и нажать «Запустить»?
Нет. Формы для вставки файла на странице приложений нет: кнопка «Из Compose» ведёт на список серверов. Стек запускают на VM командой docker compose up -d, а платформа подхватывает работающие контейнеры.
Нужен ли свой сервер или подойдёт машина от платформы?
Подойдёт любая: свой VPS по SSH или машина, которую платформа заказывает у Beget в регионе ru1. У заказанной размер один: 2 vCPU, 2 ГБ памяти и 20 ГБ диска, выбрать другой нельзя.
Что будет с данными в томах?
Именованные тома подключаются к импортированным приложениям как внешние, данные остаются на месте. Резервные копии томов платформа сама не делает, выгрузку архива нужно запускать самостоятельно.
Куда класть пароли из .env?
После импорта, в переменные окружения приложения с флагом секрета. Если вставить .env прямо в мастер импорта, значения попадут в git открытым текстом, и платформа просит на это явное согласие.
- Руководство
- 2026
Автор
Команда DADA Cloud