Установка OpenClaw через Docker: пошаговая инструкция
Развёртывание OpenClaw в контейнере Docker: docker run, docker-compose, настройка томов, портов и сетей
Зачем использовать Docker для OpenClaw
Актуальная версия: Текущая стабильная версия Docker-образа OpenClaw -- v2026.7.1. Тег :latest указывает на v2026.7.1 (с 6 июля 2026). Версия v2026.7.1 устраняет регрессию tool-execution из v2026.6.11 (баг #98528) и добавляет Slack relay mode, per-DM model overrides и RAFT CLI wake bridge.
Docker - это инструмент контейнеризации, который позволяет запускать приложения в изолированной среде. Установка OpenClaw через Docker имеет ряд преимуществ перед нативной установкой: вам не нужно устанавливать Node.js и управлять его версиями, приложение работает в изолированном контейнере и не конфликтует с другими программами, развёртывание воспроизводимо на любой ОС, поддерживающей Docker, а обновление сводится к загрузке нового образа.
Docker-подход особенно удобен для серверного развёртывания, когда OpenClaw должен работать как фоновая служба на VPS или домашнем сервере.
Системные требования для Docker
Для работы OpenClaw через Docker вам потребуется: Docker Engine версии 20.10 или новее (Docker Desktop на macOS, Docker Engine на Linux). Docker Compose версии 2.0 или новее (входит в Docker Desktop и актуальные версии Docker Engine). Минимум 2 ГБ свободной оперативной памяти для контейнера. Около 1 ГБ дискового пространства для образа.
Проверьте, что Docker установлен и работает:
docker --version
docker compose versionСпособ 1: быстрый запуск через docker run
Самый быстрый способ попробовать OpenClaw в Docker - использовать готовый образ из GitHub Container Registry:
docker run -it --rm \
-p 18789:18789 \
-v openclaw-data:/root/.openclaw \
ghcr.io/openclaw/openclaw:2026.7.1 \
onboardРазберём эту команду по частям. Флаг -it запускает контейнер в интерактивном режиме с привязкой к терминалу - это необходимо для прохождения мастера настройки. Флаг --rm автоматически удаляет контейнер после завершения. Параметр -p 18789:18789 пробрасывает порт Gateway из контейнера на хост-машину. Параметр -v openclaw-data:/root/.openclaw создаёт именованный Docker-том для хранения конфигурации и данных, которые сохраняются между перезапусками. Команда onboard запускает мастер начальной настройки.
После прохождения онбординга запустите Gateway как фоновую службу:
docker run -d \
--name openclaw-gateway \
--restart unless-stopped \
-p 18789:18789 \
-v openclaw-data:/root/.openclaw \
ghcr.io/openclaw/openclaw:2026.7.1 \
gatewayФлаг -d запускает контейнер в фоновом режиме. Параметр --name присваивает контейнеру понятное имя. Параметр --restart unless-stopped автоматически перезапускает контейнер после перезагрузки сервера.
Способ 2: Docker Compose (рекомендуемый)
Для продакшн-развёртывания рекомендуется использовать Docker Compose, который позволяет описать конфигурацию в файле и управлять ею декларативно.
Создайте файл docker-compose.yml:
version: '3.8'
services:
openclaw-gateway:
image: ghcr.io/openclaw/openclaw:2026.7.1
container_name: openclaw-gateway
command: gateway --bind lan --port 18789
restart: unless-stopped
ports:
- "${OPENCLAW_GATEWAY_PORT:-18789}:18789"
volumes:
- ./openclaw-data:/root/.openclaw
env_file:
- .env
healthcheck:
test: ["CMD", "curl", "-f", "http://127.0.0.1:18789/healthz"]
interval: 30s
timeout: 10s
retries: 3
start_period: 15s
openclaw-cli:
image: ghcr.io/openclaw/openclaw:2026.7.1
volumes:
- ./openclaw-data:/root/.openclaw
env_file:
- .env
profiles:
- cliВ этой конфигурации определены два сервиса: openclaw-gateway - основной сервис, работающий постоянно, и openclaw-cli - вспомогательный сервис для выполнения CLI-команд (онбординг, отправка сообщений и т.д.), который запускается только по запросу через профиль cli.
Создайте файл .env для хранения переменных окружения:
OPENCLAW_GATEWAY_PORT=18789
OPENCLAW_GATEWAY_BIND=lan
# Добавьте API-ключи вашего LLM-провайдера
# ANTHROPIC_API_KEY=sk-ant-...
# OPENAI_API_KEY=sk-...Первый запуск с Docker Compose
Запустите мастер онбординга через CLI-профиль:
docker compose run --rm openclaw-cli onboardМастер проведёт вас через настройку провайдера LLM, генерацию токена Gateway и базовую конфигурацию агента. Все настройки будут сохранены в директорию openclaw-data.
После онбординга запустите Gateway:
docker compose up -d openclaw-gatewayПроверьте, что сервис работает:
docker compose logs openclaw-gateway
curl http://localhost:18789/healthzЭндпоинт /healthz должен вернуть статус liveness, а /readyz - статус readiness. Если оба отвечают успешно, Gateway запущен и готов к работе.
Сборка образа из исходников
Если вы хотите собрать Docker-образ из исходного кода (например, для внесения изменений), клонируйте репозиторий и используйте встроенный Dockerfile:
git clone https://github.com/openclaw/openclaw.git
cd openclaw
docker build -t openclaw:local -f Dockerfile .Альтернативно, в репозитории есть скрипт автоматической настройки:
./docker-setup.shСкрипт автоматически собирает образ, запускает онбординг и конфигурирует Docker Compose. После его выполнения измените переменную окружения на ваш локальный образ:
export OPENCLAW_IMAGE="openclaw:local"Настройка сети: доступ к локальным сервисам
Важный нюанс при работе с Docker: контейнер имеет собственную сетевую среду и не может напрямую обращаться к сервисам на хост-машине по адресу localhost. Это актуально, например, при подключении к Ollama, работающему на хосте.
Для доступа к сервисам хост-машины из контейнера используйте специальный DNS-адрес:
host.docker.internalНапример, если Ollama запущен на хосте и слушает порт 11434, в конфигурации OpenClaw внутри контейнера укажите URL:
http://host.docker.internal:11434/v1На Linux, в зависимости от версии Docker, может потребоваться добавить параметр --add-host=host.docker.internal:host-gateway при запуске контейнера или добавить соответствующую секцию в docker-compose.yml:
extra_hosts:
- "host.docker.internal:host-gateway"Параметры привязки Gateway
Gateway поддерживает два режима сетевой привязки через переменную OPENCLAW_GATEWAY_BIND. Режим lan (по умолчанию): Gateway слушает на всех интерфейсах, доступен с хост-машины и из локальной сети через опубликованный порт. Режим loopback: Gateway доступен только внутри контейнерной сети, что обеспечивает дополнительную изоляцию.
Для большинства сценариев использования режим lan является оптимальным. Режим loopback подходит для продакшн-развёртываний, где перед Gateway стоит обратный прокси (nginx, Caddy) с поддержкой TLS.
Управление контейнером
Основные команды для управления запущенным контейнером OpenClaw:
# Просмотр логов
docker compose logs -f openclaw-gateway
# Остановка
docker compose stop openclaw-gateway
# Перезапуск
docker compose restart openclaw-gateway
# Обновление до последней версии
docker compose pull openclaw-gateway
docker compose up -d openclaw-gateway
# Выполнение CLI-команд
docker compose run --rm openclaw-cli send "Привет, как дела?"Развёртывание в Kubernetes
Для масштабных развёртываний OpenClaw можно запустить в кластере Kubernetes. Базовый манифест включает Deployment с одной репликой, Service типа ClusterIP для внутреннего доступа на порту 18789, PersistentVolumeClaim для хранения данных и Secret для API-ключей. Подробная инструкция по развёртыванию в Kubernetes выходит за рамки этого руководства, но основные принципы те же: проброс порта 18789, персистентное хранилище для директории /root/.openclaw и передача API-ключей через переменные окружения.
Безопасность Docker-развёртывания
При развёртывании OpenClaw в Docker обратите внимание на несколько аспектов безопасности. Не храните API-ключи в docker-compose.yml - используйте файл .env или Docker Secrets. Файл .env должен быть добавлен в .gitignore. Ограничьте доступ к порту 18789 через файрвол, если Gateway не должен быть доступен извне. Регулярно обновляйте базовый Docker-образ для получения исправлений безопасности.
Следующий шаг
После успешного развёртывания OpenClaw в Docker переходите к статье о первом запуске и начальной настройке, чтобы пройти мастер онбординга и сконфигурировать вашего AI-агента.
КРИТИЧЕСКИ ВАЖНО: из-за 138+ CVE в OpenClaw политика безопасности Docker требует немедленного внимания. Обязательно настройте DOCKER-USER firewall для ограничения сетевого доступа контейнера. Без firewall правил скомпрометированный агент может получить неограниченный доступ к сети хоста.
Правила DOCKER-USER firewall настраиваются через iptables. Добавьте правила, ограничивающие исходящие соединения только необходимыми доменами: API-эндпоинты используемых моделей и разрешённые веб-хуки. Шаблон конфигурации доступен в официальной документации OpenClaw Security.
Актуальные теги Docker-образов: используйте 'openclaw:2026.7.1' (стабильная версия). Тег :latest указывает на v2026.7.1 (с 6 июля 2026). Команда для обновления: 'docker pull ghcr.io/openclaw/openclaw:2026.7.1'.
Критические уязвимости устранены в v2026.6.5: CVE-2026-45006 (CVSS 8.8, обход scope в версиях до 4.20) и CVE-2026-45007. Настоятельно рекомендуется обновление до v2026.7.1 (текущая стабильная версия) для всех production-деплоев. Регрессия tool-execution из v2026.6.11 (баг #98528) устранена в v2026.7.1.
Node.js v24 для Docker. Рекомендуется FROM node:24-slim. Минимум: Node.js 22.16+. Добавьте порт 3000 для Control UI, DOCKER-USER правила брандмауэра для безопасности.
Актуальный тег образа: 2026.7.1
Схема версионирования OpenClaw (с июня 2026): формат YYYY.M.PATCH, где YYYY -- год, M -- номер месяца (без ведущего нуля), PATCH -- счётчик патчей внутри месяца. Например, 2026.6.10 -- шестой патч июня 2026 года. При выборе тега для production всегда указывайте конкретную версию вместо :latest.
Актуальный стабильный тег Docker-образа на момент написания -- 2026.7.1. Тег :latest также указывает на v2026.7.1 (с 6 июля 2026). Для воспроизводимых деплоев рекомендуется явно указывать версию:
docker pull ghcr.io/openclaw/openclaw:2026.7.1
Полный пример docker-compose.yml
Рабочий пример для production-деплоя с персистентным хранилищем:
version: '3.8'
services:
openclaw:
image: ghcr.io/openclaw/openclaw:2026.7.1
ports:
- "18789:18789"
volumes:
- ./data:/root/.openclaw
- ./.env:/app/.env:ro
environment:
- NODE_ENV=production
- OPENCLAW_PORT=18789
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:18789/healthz"]
interval: 30s
timeout: 10s
retries: 3
Переменные окружения
ANTHROPIC_API_KEY-- ключ API Anthropic (обязателен)OPENCLAW_PORT-- порт HTTP (по умолчанию 18789)OPENCLAW_DATA_DIR-- путь к директории данных (по умолчанию /root/.openclaw)NODE_ENV-- окружение (production/development)
Настройка DOCKER-USER firewall
На Linux с ufw/nftables Docker обходит правила ufw по умолчанию. Для безопасности ограничьте доступ к порту 3000:
sudo ufw allow from 127.0.0.1 to any port 18789
sudo ufw deny 18789
Либо используйте таблицу DOCKER-USER в iptables для более тонкого контроля.
Health check endpoint
OpenClaw предоставляет endpoint для проверки состояния: GET http://localhost:18789/healthz. Возвращает JSON {"status":"ok","version":"2026.7.1"} при нормальной работе.
Обновление до новой версии
Обновление с сохранением данных:
docker-compose pull
docker-compose up -d
Docker Compose автоматически пересоздаст контейнер с новым образом, сохранив смонтированные тома с данными.
Обновление безопасности v2026.6.5: operator install policy
В версии v2026.6.5 введена operator install policy -- новая политика безопасности, требующая явного одобрения при установке сторонних операторов (плагинов и расширений). Это заменяет предыдущий механизм dangerous-code scanner и обеспечивает более надёжную защиту от вредоносных расширений.
Минимальная рекомендуемая безопасная версия для Docker-развёртываний -- v2026.6.5.
docker pull ghcr.io/openclaw/openclaw:2026.6.5
Стандартная конфигурация Docker Compose: Правильный порт для OpenClaw: 18789 (не 3000). Путь к данным: /root/.openclaw. Проверка работоспособности: эндпойнт /healthz. Предыдущая конфигурация с портом 3000 и путём /app/data была ошибочной и удалена.
v2026.6.5 (5 июня 2026): обновление Docker-зависимостей с установкой лимитов памяти, CPU и процессов для стабильной работы в контейнерах. Docker E2E тесты теперь применяют ограничения по умолчанию при сохранении явных переопределений. Рекомендуется обновить образ: docker pull ghcr.io/openclaw/openclaw:2026.6.5
Важно: официальный реестр образов
Официального образа OpenClaw на Docker Hub нет. Используйте исключительно GitHub Container Registry: ghcr.io/openclaw/openclaw. Образы с Docker Hub от сторонних авторов не являются официальными и могут содержать вредоносный код.
Рекомендуется всегда указывать конкретный тег версии вместо :latest. Тег :latest указывает на v2026.7.1 (с 6 июля 2026), однако для воспроизводимых деплоев предпочтительнее явная версия: ghcr.io/openclaw/openclaw:2026.7.1.
История версий: v2026.6.11 и v2026.7.1
Версия v2026.6.11 содержала критическую регрессию tool-execution (баг #98528): инструменты web_search, exec, web_fetch возвращали пустой вывод после первого вызова. Регрессия устранена в v2026.7.1 (вышла 6 июля 2026). Новые функции v2026.6.11 (Slack relay mode, per-DM model overrides, RAFT CLI wake bridge) доступны в v2026.7.1.
Рекомендуемый Docker-тег
Используйте тег ghcr.io/openclaw/openclaw:2026.7.1 для стабильной работы. Тег :latest указывает на v2026.7.1 (с 6 июля 2026). Регрессия tool-execution из v2026.6.11 устранена в этой версии.
Если вы используете v2026.6.11 или более старую версию, обновитесь до v2026.7.1: docker pull ghcr.io/openclaw/openclaw:2026.7.1 && docker stop openclaw && docker rm openclaw и запустите контейнер с тегом 2026.7.1. Данные в volume сохраняются при обновлении.
Команда openclaw attach с Docker (v2026.7.1)
Команда openclaw attach, добавленная в v2026.7.1, позволяет подключить внешний harness к уже запущенному Gateway в Docker-контейнере. Это ключевая функция для CI/CD пайплайнов: вместо создания новой Docker-сессии при каждом запуске пайплайна подключайтесь к уже работающему контейнеру с загруженным контекстом.
# Подключение к запущенному Gateway-контейнеру
docker compose exec openclaw-cli openclaw attach \
--session prod-agent \
--message "Проверь деплой и уведоми команду"
# Или через RAFT wake bridge на отдельном порту
curl -X POST http://localhost:18790/wake \
-H "Authorization: Bearer $RAFT_AUTH_TOKEN" \
-d '{"message": "Запусти ночной аудит безопасности"}'Для активации RAFT wake bridge добавьте в docker-compose.yml дополнительный порт и переменную окружения:
services:
openclaw-gateway:
image: ghcr.io/openclaw/openclaw:2026.7.1
ports:
- "${OPENCLAW_GATEWAY_PORT:-18789}:18789"
- "${OPENCLAW_RAFT_PORT:-18790}:18790" # RAFT wake bridge
environment:
- OPENCLAW_RAFT_PORT=18790
- OPENCLAW_RAFT_AUTH_TOKEN=${RAFT_AUTH_TOKEN}Event-driven запуск задач из Docker (v2026.7.1)
Июльское обновление 2026 года добавило поддержку event-driven cron: тип расписания on-exit позволяет агенту в Docker-контейнере реагировать на завершение наблюдаемых команд без периодического опроса. Это снижает нагрузку на контейнер и делает реакцию мгновенной. Пример настройки в docker-compose.yml для event-driven сценариев доступен в документации v2026.7.1.
Этот материал подготовлен командой AI-агентов AravanaAI и проверен главным редактором.
- Первый запуск и начальная настройка OpenClaw: пошаговая инструкция
После установки через Docker следует первый запуск — единая точка входа для всех способов установки
Хотите получать подобные материалы раньше?
Aravana Intelligence — авторская аналитика и закрытый круг для тех, кто думает на шаг вперёд.
Узнать про IntelligenceНе пропускайте важное
Еженедельный дайджест Aravana — ключевые события в AI, робототехнике и longevity.
Как начать пользоваться Agno: Python-фреймворк для создания AI-агентов
Agno (бывший phidata) - один из самых популярных Python-фреймворков для построения AI-агентов с 39k+ звезд на GitHub. Пошаговый гайд: установка, первый агент за 5 минут, мультиагентные команды и деплой в продакшн.
Seedance 2.5: как начать пользоваться генератором видео от ByteDance
Seedance 2.5 от ByteDance генерирует нативное 30-секундное видео в один проход, принимает до 50 мультимодальных референсов и позволяет редактировать отдельные фрагменты без перегенерации всего клипа.
ChatGPT Work: как начать пользоваться агентным рабочим столом OpenAI
9 июля 2026 OpenAI запустила ChatGPT Work -- агента, который берёт у вас целый проект, сам планирует шаги, работает часами в фоне и возвращает готовый документ, таблицу или презентацию.