Что такое OpenClaw в Docker
OpenClaw в Docker — это способ запустить ИИ-агента в изолированном контейнере, где все зависимости, библиотеки и настройки упакованы в единый воспроизводимый пакет. Вместо установки Node.js, Python и десятков пакетов на хост-машине вы получаете готовую среду, которая работает одинаково на любом сервере.
Docker-установка — рекомендуемый способ для продакшн-развертываний OpenClaw. Официальный репозиторий содержит готовый Dockerfile, docker-compose.yml и скрипт автоматической настройки, которые делают процесс установки предсказуемым и повторяемым.
Зачем использовать Docker для OpenClaw
Docker даёт три ключевых преимущества при работе с OpenClaw:
docker compose pull && docker compose up -d. Никакого ручного обновления зависимостей.Если вы планируете запустить OpenClaw на VPS или выделенном сервере и хотите стабильную, изолированную среду — Docker это правильный выбор. Если же вы просто хотите попробовать OpenClaw локально на своём компьютере, обычная установка через npm будет быстрее.
Требования к серверу
Для запуска OpenClaw в Docker потребуется:
pnpm install может завершиться с ошибкой OOM (exit 137) на серверах с 1 ГБ памятиРекомендуемые ресурсы в зависимости от сценария использования:
| Сценарий | CPU | RAM | Диск |
|---|---|---|---|
| Персональный ассистент | 2 vCPU | 4 ГБ | 80 ГБ |
| Автоматизация рабочих процессов | 4 vCPU | 8 ГБ | 160 ГБ |
| Разработка и тестирование | 4+ vCPU | 16 ГБ | 240+ ГБ |
Установка Docker на сервер
Если Docker ещё не установлен, выполните на сервере с Ubuntu:
sudo apt update && sudo apt upgrade -y
sudo apt install -y ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
Проверьте установку:
docker --version
docker compose version
Способ 1: Автоматическая установка (рекомендуется)
Самый простой путь — использовать официальный скрипт настройки. Он проведёт вас через все шаги интерактивно.
Клонирование репозитория
git clone https://github.com/openclaw/openclaw.git
cd openclaw
Запуск скрипта настройки
./scripts/docker/setup.sh
Скрипт автоматически:
OPENCLAW_IMAGE).envЕсли хотите использовать готовый образ вместо сборки:
export OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest"
./scripts/docker/setup.sh
Готовые образы публикуются в GitHub Container Registry. Доступные теги: main, latest, а также версии вида 2026.2.26.
Способ 2: Ручная установка
Если хотите контролировать каждый шаг, можно выполнить всё вручную.
Сборка образа
docker build -t openclaw:local -f Dockerfile .
Онбординг
docker compose run --rm --no-deps --entrypoint node openclaw-gateway \
dist/index.js onboard --mode local --no-install-daemon
Настройка конфигурации
docker compose run --rm --no-deps --entrypoint node openclaw-gateway \
dist/index.js config set --batch-json '[
{"path":"gateway.mode","value":"local"},
{"path":"gateway.bind","value":"lan"},
{"path":"gateway.controlUi.allowedOrigins","value":["http://localhost:18789","http://127.0.0.1:18789"]}
]'
Запуск
docker compose up -d openclaw-gateway
Первый запуск и доступ к веб-интерфейсу
После запуска контейнера откройте в браузере http://127.0.0.1:18789/. Если OpenClaw развёрнут на удалённом сервере — замените адрес на IP сервера.
Для аутентификации потребуется токен, который был сгенерирован при настройке. Он записан в файле .env в переменной OPENCLAW_GATEWAY_TOKEN.
Если токен утерян, его можно получить заново:
docker compose run --rm openclaw-cli dashboard --no-open
Команда выведет URL с токеном для доступа к панели управления.
Ошибка «pairing required»
Иногда при открытии интерфейса появляется ошибка disconnected (1008): pairing required. Это значит, что устройство ещё не одобрено. Решение:
docker compose exec openclaw-gateway node dist/index.js devices list
docker compose exec openclaw-gateway node dist/index.js devices approve
Подключение мессенджеров
OpenClaw поддерживает подключение нескольких мессенджеров через CLI-контейнер.
Telegram
Сначала создайте бота через @BotFather в Telegram (команда /newbot), получите токен. Затем:
docker compose run --rm openclaw-cli channels add --channel telegram --token "ВАШ_ТОКЕН"
После подключения OpenClaw отправит код подтверждения в Telegram. Одобрьте его:
docker compose run --rm openclaw-cli pairing approve telegram КОД
Для WhatsApp используется авторизация через QR-код:
docker compose run --rm openclaw-cli channels login
Отсканируйте QR-код камерой телефона через WhatsApp (Настройки → Связанные устройства).
Discord
docker compose run --rm openclaw-cli channels add --channel discord --token "ВАШ_ТОКЕН"
Использование локальных моделей (Ollama, LM Studio)
Если вы запускаете модели локально через Ollama или LM Studio на той же машине, где работает Docker-контейнер, нужно учесть особенность Docker-сети: 127.0.0.1 внутри контейнера указывает на сам контейнер, а не на хост-машину.
Вместо http://127.0.0.1:11434 (Ollama) или http://127.0.0.1:1234 (LM Studio) используйте http://host.docker.internal:11434 и http://host.docker.internal:1234 соответственно.
Убедитесь, что Ollama или LM Studio слушают на всех интерфейсах:
# Ollama
OLLAMA_HOST=0.0.0.0:11434 ollama serve
# LM Studio
lms server start --port 1234 --bind 0.0.0.0
Официальный docker-compose.yml уже содержит маппинг host.docker.internal на Docker host gateway для Linux.
Управление контейнером
Основные команды
# Запуск
docker compose up -d
# Остановка
docker compose down
# Просмотр логов
docker compose logs -f
# Перезапуск
docker compose restart openclaw-gateway
Проверка здоровья
OpenClaw предоставляет эндпоинты для проверки состояния без аутентификации:
curl -fsS http://127.0.0.1:18789/healthz # жив ли контейнер
curl -fsS http://127.0.0.1:18789/readyz # готов ли к работе
Docker-образ встроенно проверяет /healthz. Если проверка не проходит, контейнер помечается как unhealthy.
Установка дополнительных пакетов
Контейнер OpenClaw работает от пользователя node (uid 1000), без root-доступа. Если нужно установить дополнительные пакеты:
docker compose exec -u root openclaw-gateway bash
apt-get update && apt-get install -y нужный_пакет
Для пакетов, которые нужны при сборке образа, используйте переменные окружения:
export OPENCLAW_IMAGE_APT_PACKAGES="ripgrep ffmpeg"
export OPENCLAW_IMAGE_PIP_PACKAGES="some-python-package==1.0.0"
./scripts/docker/setup.sh
Обновление OpenClaw в Docker
Обновление до новой версии — одна из главных причин использовать Docker. Процесс:
cd openclaw
git pull
docker compose pull # если используете готовый образ
docker compose up -d # пересоздаёт контейнер с новым образом
Если вы собирали образ локально:
cd openclaw
git pull
docker compose build
docker compose up -d
Данные агента (память, конфигурация, профили) сохраняются, потому что они монтируются как тома из хост-системы.
Автоматическое обновление с Watchtower
Для автоматического обновления можно использовать Watchtower:
docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower --schedule "0 0 4 * * *" openclaw-gateway
Это обновит контейнер OpenClaw каждый день в 4:00.
Хранение данных и персистентность
Docker Compose монтирует три директории из хост-системы:
~/.openclaw → /home/node/.openclaw) — настройки, API-ключи, память агента~/openclaw/workspace → /home/node/.openclaw/workspace) — файлы, с которыми работает агент~/.config/openclaw → /home/node/.config/openclaw) — ключи шифрования профилейВ этих директориях хранятся:
openclaw.json — основной конфигурационный файлagents//agent/auth-profiles.json — OAuth и API-ключи.env — runtime-секреты вроде OPENCLAW_GATEWAY_TOKENЗа ростом диска нужно следить: медиафайлы, логи сессий (JSONL), база данных SQLite и установленные плагины могут занимать значительное место.
Переменные окружения
Скрипт настройки принимает дополнительные переменные:
| Переменная | Назначение |
|---|---|
| `OPENCLAW_IMAGE` | Использовать готовый образ вместо сборки |
| `OPENCLAW_IMAGE_APT_PACKAGES` | Дополнительные apt-пакеты при сборке |
| `OPENCLAW_IMAGE_PIP_PACKAGES` | Дополнительные Python-пакеты при сборке |
| `OPENCLAW_EXTENSIONS` | Плагины для предустановки при сборке |
| `OPENCLAW_EXTRA_MOUNTS` | Дополнительные монтирования (через запятую) |
| `OPENCLAW_HOME_VOLUME` | Хранить `/home/node` в именованном томе Docker |
| `OPENCLAW_SANDBOX` | Включить песочницу (`1`, `true`, `yes`) |
| `OPENCLAW_SKIP_ONBOARDING` | Пропустить интерактивный онбординг |
Безопасность при развёртывании
OpenClaw выполняет системные команды и имеет доступ к файлам. При публичном развертывании важно соблюдать меры безопасности:
OPENCLAW_GATEWAY_TOKEN в .env защищает панель управления от несанкционированного доступа.node (uid 1000). Не меняйте это без веской причины.ufw — откройте только необходимые порты.EACCES, убедитесь что директории на хосте принадлежат uid 1000:sudo chown -R 1000:1000 ~/.openclaw ~/openclaw/workspace
Установка на VPS: пошаговый сценарий
Полный процесс запуска OpenClaw в Docker на VPS с Ubuntu:
git clone https://github.com/openclaw/openclaw.git && cd openclaw
./scripts/docker/setup.sh
http://IP_СЕРВЕРА:18789После этого агент будет доступен из мессенджера и веб-интерфейса, работая 24/7 на вашем сервере.
ClawDock: утилита для удобного управления
Для повседневного управления Docker-контейнером OpenClaw можно установить набор shell-хелперов ClawDock:
mkdir -p ~/.clawdock && curl -sL https://raw.githubusercontent.com/openclaw/openclaw/main/scripts/clawdock/clawdock-helpers.sh -o ~/.clawdock/clawdock-helpers.sh
echo 'source ~/.clawdock/clawdock-helpers.sh' >> ~/.zshrc && source ~/.zshrc
После установки доступны команды: clawdock-start, clawdock-stop, clawdock-dashboard и другие. Полный список — через clawdock-help.
Частые вопросы
OpenClaw в Docker не запускается — что проверить?
Сначала посмотрите логи: docker compose logs -f. Типичные проблемы: нехватка ОЗУ (exit 137), ошибки в .env, неправильные права на смонтированные директории. Убедитесь, что на сервере достаточно памяти — минимум 2 ГБ.
Можно ли запустить несколько агентов в одном Docker-контейнере?
Нет. Каждый агент OpenClaw должен работать в отдельном контейнере со своей конфигурацией и томами. Это обеспечивает изоляцию и предсказуемость.
Как перенести агента на другой сервер?
Скопируйте три директории (~/.openclaw, ~/openclaw/workspace, ~/.config/openclaw) на новый сервер и запустите docker compose up -d. Все настройки, память и профили агента сохранятся.
Работает ли OpenClaw в Docker на ARM (Apple Silicon, Raspberry Pi)?
Официальный образ поддерживает linux/amd64. На ARM-устройствах (Apple M1/M2, Raspberry Pi) образ собирается из исходников при первом запуске, что занимает больше времени. На Raspberry Pi с 4 ГБ ОЗУ это возможно, но сборка может занять 10-15 минут.
Чем Docker-установка отличается от обычной?
Обычная установка (npm install -g openclaw) ставит OpenClaw прямо на хост-машину. Это быстрее для локального тестирования, но не изолировано. Docker-установка даёт чистую, воспроизводимую среду, которая легко обновляется и не зависит от системных пакетов хоста.