Установка OpenClaw через Docker: пошаговая инструкция

Развёртывание OpenClaw в контейнере Docker: docker run, docker-compose, настройка томов, портов и сетей

Aravana··5 мин

Зачем использовать 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 и проверен главным редактором.

Тип материала: research

Поделиться:TelegramXLinkedIn
Как вам материал?

Читайте также

Хотите получать подобные материалы раньше?

Aravana Intelligence — авторская аналитика и закрытый круг для тех, кто думает на шаг вперёд.

Узнать про Intelligence

Не пропускайте важное

Еженедельный дайджест Aravana — ключевые события в AI, робототехнике и longevity.

Похожие материалы

Как начать пользоваться Agno: Python-фреймворк для создания AI-агентов

Agno (бывший phidata) - один из самых популярных Python-фреймворков для построения AI-агентов с 39k+ звезд на GitHub. Пошаговый гайд: установка, первый агент за 5 минут, мультиагентные команды и деплой в продакшн.

·8 мин

Seedance 2.5: как начать пользоваться генератором видео от ByteDance

Seedance 2.5 от ByteDance генерирует нативное 30-секундное видео в один проход, принимает до 50 мультимодальных референсов и позволяет редактировать отдельные фрагменты без перегенерации всего клипа.

·7 мин

ChatGPT Work: как начать пользоваться агентным рабочим столом OpenAI

9 июля 2026 OpenAI запустила ChatGPT Work -- агента, который берёт у вас целый проект, сам планирует шаги, работает часами в фоне и возвращает готовый документ, таблицу или презентацию.

·8 мин