НОВОЕ 📢 Ограниченное стартовое предложение: скидка до 70% на первый месяц для любой игры!Посмотреть тарифы

Как запустить OpenClaw в Docker

OpenClawUpdated Nov 6, 20267 min read

Коротко. Клонируйте репозиторий OpenClaw и запустите ./scripts/docker/setup.sh с заданным OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest", чтобы он использовал официальный готовый образ, а не собирал свой (сборка из исходников требует не меньше 6 GB RAM). Скрипт проводит onboarding, записывает токен Gateway в .env и запускает Gateway через Docker Compose. Смонтируйте папку состояния ~/.openclaw, чтобы ничего не пропало при замене контейнера, и держите порт 18789 закрытым от интернета: порты, опубликованные Docker, обходят UFW. Дайте контейнеру не меньше 2 GB памяти; при лимите 1 GB без swap официальный образ в нашем тесте был убит из-за нехватки памяти.

Проверено 6 ноября 2026, актуально для OpenClaw 2026.11.1.

В этом руководстве использованы документация OpenClaw по Docker, файл docker-compose.yml из его репозитория и тест официального образа, который мы провели на собственном сервере (цифры ниже).

Нужен ли вам Docker вообще?

Документация OpenClaw называет Docker необязательным: он полезен для изолированного одноразового Gateway или для хоста, где вы не хотите ставить Node.js. На VPS, где работает только OpenClaw, основной путь это обычная установка через npm со службой systemd (см. хостинг OpenClaw 24/7). Docker хорошо подходит, если вы уже запускаете другие вещи в контейнерах.

Что такое официальный образ

  • Где: ghcr.io/openclaw/openclaw (основной) и зеркало на Docker Hub openclaw/openclaw. OpenClaw не советует использовать неофициальные зеркала.
  • Теги: latest, конкретные релизы вроде 2026.11.1, варианты -slim и варианты -browser, включающие Chromium для автоматизации браузера.
  • Внутри: он работает от пользователя node под tini, а его entrypoint запускает openclaw doctor --fix на смонтированном состоянии до старта Gateway, поэтому обновления образа переносят состояние за вас. Встроенный health check обращается к /healthz.

Что мы измерили

Мы скачали ghcr.io/openclaw/openclaw:2026.11.1 на один из наших Linux-серверов и дважды запустили Gateway через docker run (не Compose), без модели, без чат-приложения, без опубликованного порта, с лимитом 1 CPU и без swap: один раз с лимитом памяти 2 GB, один раз с 1 GB. Значения памяти даны в MiB, как их показывает Linux.

Результат
ЗагрузкаОколо 695 MB в сжатом виде (amd64), 2 818 MiB (около 3 GB) на диске после загрузки
Node.js в образе24.22.1
Лимит 2 GB: старт/healthz ответил через 48 секунд после docker run, включая проход doctor. Gateway загрузил 14 плагинов и записал "ready" через 22 секунды после собственного старта
Лимит 2 GB: память в покое1 349 MiB через 30 секунд после ответа на health check, 1 106 MiB две минуты спустя, максимум 1 439 MiB. Событий нехватки памяти не было
Лимит 1 GBGateway дошёл до "ready", после чего весь контейнер был убит из-за нехватки памяти примерно через 54 секунды после старта (код выхода 137)

В FAQ OpenClaw 1 GB назван абсолютным минимумом для VPS. С этим релизом в контейнере с лимитом 1 GB этого не хватило. Закладывайте 2 GB и больше, а для реальных разговоров, нескольких чат-приложений или образа -browser ещё больше. Подробнее в сколько памяти нужно OpenClaw.

Пошагово с Docker Compose

  1. Установите Docker Engine и Docker Compose v2, затем получите репозиторий:
    git clone https://github.com/openclaw/openclaw.git
    cd openclaw
  2. Запустите скрипт setup с готовым образом:
    export OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest"
    ./scripts/docker/setup.sh
    Без OPENCLAW_IMAGE скрипт собирает openclaw:local из исходников, что требует не меньше 6 GB RAM; сборка, закончившаяся сообщением Killed или кодом выхода 137, исчерпала память. Скрипт спрашивает API-ключ вашего провайдера, генерирует токен Gateway, записывает его в .env и затем запускает Gateway.
  3. Откройте дашборд по адресу http://127.0.0.1:18789/ на той же машине и вставьте токен из .env в Settings. Нужна ссылка ещё раз: docker compose run --rm openclaw-cli dashboard --no-open.
  4. Добавьте чат-приложение:
    docker compose run --rm openclaw-cli channels add --channel telegram --token "<token>"
    docker compose run --rm openclaw-cli channels add --channel discord --token "<token>"
    Новые личные сообщения начинаются в режиме pairing: напишите боту, затем выполните docker compose run --rm openclaw-cli pairing approve telegram <CODE>. Подробнее в как подключить OpenClaw к Telegram.
  5. Проверьте:
    docker compose ps
    docker compose logs --tail=100 openclaw-gateway
    curl -fsS http://127.0.0.1:18789/healthz

Для хоста без интерактивных запросов OpenClaw описывает безголовый bootstrap: поместите ключ провайдера, OPENCLAW_GATEWAY_TOKEN и TELEGRAM_BOT_TOKEN в .env, затем выполните onboard --non-interactive и channels add --channel telegram --use-env через контейнер Gateway перед docker compose up -d openclaw-gateway.

Постоянство: что монтировать и копировать

В контейнереЧто там хранитсяСторона хоста (по умолчанию в setup)
/home/node/.openclawopenclaw.json, базы SQLite (авторизация провайдеров, сессии), установленные плагины, секреты в .env$HOME/.openclaw
/home/node/.openclaw/workspaceРабочее пространство агента и файлы памяти$HOME/.openclaw/workspace
/home/node/.config/openclawКлюч для старых зашифрованных учётных данных$HOME/.openclaw-auth-profile-secrets
  • Монтируйте папку, а не отдельный файл. OpenClaw сохраняет openclaw.json, заменяя его, поэтому bind mount одного файла может привести к тому, что контейнер читает старую копию.
  • Держите состояние на локальном диске. Общие ресурсы NFS, SMB и CIFS не обеспечивают SQLite нужную координацию общей памяти и могут его повредить.
  • Один Gateway на папку состояния. Остановите старый контейнер, прежде чем запускать его замену.
  • Относитесь к резервным копиям как к секретам. В документации OpenClaw сказано, что токены OAuth лежат в этих файлах SQLite открытым текстом.
  • Всё, что вы устанавливаете внутри работающего контейнера, теряется при его пересоздании. Дополнительные инструменты нужно включать в образ при сборке.

Держите порт закрытым

docker-compose.yml из репозитория публикует 18789 (а также 18790 и 3978) на хосте и запускает Gateway с --bind lan, поэтому опубликованный порт до него доходит. На VPS это значит, что порт дашборда оказывается на публичном адресе, пока вы его не заблокируете. Две ловушки:

  • UFW это не покрывает. Опубликованные порты контейнеров идут через собственные цепочки пересылки Docker, а не только через правила INPUT хоста. В документации OpenClaw приведены правила для цепочки DOCKER-USER; подходит и облачный файрвол, пропускающий только SSH.
  • Для доступа к дашборду используйте туннель: ssh -N -L 18789:127.0.0.1:18789 root@<vps-ip>, затем откройте http://127.0.0.1:18789/ на своём компьютере.

Compose также задаёт restart: unless-stopped, поэтому Gateway возвращается после сбоя или перезагрузки, и убирает возможности NET_RAW и NET_ADMIN.

Обновление

docker compose pull openclaw-gateway openclaw-cli
docker compose stop openclaw-gateway
docker compose up -d openclaw-gateway

Entrypoint образа исправляет и мигрирует смонтированное состояние при старте. Сначала сделайте копию ~/.openclaw. С latest вы переходите на каждый стабильный релиз; зафиксируйте тег вроде 2026.11.1, чтобы остаться на месте.

Без Docker: запустите OpenClaw на PlayNHost

Сервер PlayNHost уже является изолированным контейнером со своим лимитом памяти, поэтому составлять нечего. Мы не используем официальный образ: сервер работает на Node.js 26 и при первом старте устанавливает пакет npm openclaw, а затем проверяет наличие нового релиза при каждом старте.

  • Настройка: вставьте ключ ИИ-провайдера и токен бота Telegram или Discord на странице «Агент», затем нажмите Start. В нашем тесте той же настройки агент работал через 67 секунд после первого Start, включая установку.
  • Постоянство: .openclaw лежит на диске сервера и в его резервных копиях (около 4 MB в нашем тесте); программа и её кэши устанавливаются заново, а не копируются.
  • Порт: Gateway слушает только на собственном loopback-адресе сервера, порт 18789, с токеном, который генерирует панель. Ничего не публикуется, так что файрвол настроить неправильно нельзя.
  • Память: тарифы 2 GB, 4 GB и 8 GB. Старт отказывается запускать OpenClaw при памяти меньше 2 GB.
  • Пока не включено: веб-дашборд, чат-приложения кроме Telegram и Discord и автоматизация браузера (нет Chromium).

Создайте сервер OpenClaw.

PlayNHost не связан с OpenClaw Foundation. OpenClaw это программное обеспечение с открытым кодом под лицензией MIT.

Ваш сервер уже у другого хостинга? Перенесите его к нам

ПОСЛЕДНИЕ БЛОГИ