Docker є необов’язковим. Використовуйте його лише якщо потрібен контейнеризований Gateway або потрібно перевірити Docker-процес.Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Чи підходить мені Docker?
- Так: вам потрібне ізольоване одноразове середовище Gateway або запуск OpenClaw на хості без локальних установок.
- Ні: ви запускаєте на власній машині й просто хочете найшвидший цикл розробки. Натомість використовуйте звичайний процес установлення.
- Примітка щодо пісочниці: типовий бекенд пісочниці використовує Docker, коли пісочницю ввімкнено, але пісочниця вимкнена за замовчуванням і не вимагає запуску всього Gateway у Docker. Також доступні бекенди пісочниці SSH і OpenShell. Див. Пісочниця.
Передумови
- Docker Desktop (або Docker Engine) + Docker Compose v2
- Принаймні 2 ГБ RAM для збирання образу (
pnpm installможе бути завершено через OOM на хостах з 1 ГБ із кодом виходу 137) - Достатньо місця на диску для образів і журналів
- Якщо запускаєте на VPS/публічному хості, перегляньте
Посилення безпеки для мережевого доступу,
особливо політику firewall Docker
DOCKER-USER.
Контейнеризований Gateway
Зібрати образ
main, latest, <version> (наприклад, 2026.2.26).Завершити онбординг
- запросить API-ключі провайдера
- згенерує токен Gateway і запише його в
.env - створить каталог секретного ключа auth-profile
- запустить Gateway через Docker Compose
openclaw-gateway. openclaw-cli призначений для команд, які ви запускаєте після того,
як контейнер Gateway уже існує.Відкрити Control UI
http://127.0.0.1:18789/ у браузері та вставте налаштований
спільний секрет у Settings. Сценарій налаштування за замовчуванням записує токен у .env;
якщо ви перемкнете конфігурацію контейнера на автентифікацію паролем, використовуйте
натомість цей пароль.Потрібна URL-адреса ще раз?Ручний процес
Якщо ви віддаєте перевагу самостійному запуску кожного кроку замість використання сценарію налаштування:docker compose з кореня репозиторію. Якщо ви ввімкнули OPENCLAW_EXTRA_MOUNTS
або OPENCLAW_HOME_VOLUME, сценарій налаштування записує docker-compose.extra.yml;
додайте його через -f docker-compose.yml -f docker-compose.extra.yml.openclaw-cli спільно використовує мережевий простір імен openclaw-gateway, це
інструмент після старту. До docker compose up -d openclaw-gateway запускайте онбординг
і записи конфігурації під час налаштування через openclaw-gateway з
--no-deps --entrypoint node.Змінні середовища
Сценарій налаштування приймає такі необов’язкові змінні середовища:| Змінна | Призначення |
|---|---|
OPENCLAW_IMAGE | Використати віддалений образ замість локального збирання |
OPENCLAW_DOCKER_APT_PACKAGES | Установити додаткові apt-пакети під час збирання (через пробіл) |
OPENCLAW_EXTENSIONS | Додати вибрані вбудовані допоміжні засоби Plugin під час збирання |
OPENCLAW_EXTRA_MOUNTS | Додаткові bind mount з хоста (через кому: source:target[:opts]) |
OPENCLAW_HOME_VOLUME | Зберігати /home/node в іменованому томі Docker |
OPENCLAW_SANDBOX | Увімкнути bootstrap пісочниці (1, true, yes, on) |
OPENCLAW_SKIP_ONBOARDING | Пропустити інтерактивний крок онбордингу (1, true, yes, on) |
OPENCLAW_DOCKER_SOCKET | Перевизначити шлях до сокета Docker |
OPENCLAW_DISABLE_BONJOUR | Вимкнути оголошення Bonjour/mDNS (за замовчуванням 1 для Docker) |
OPENCLAW_DISABLE_BUNDLED_SOURCE_OVERLAYS | Вимкнути bind-mount overlay для джерел вбудованих Plugin |
OTEL_EXPORTER_OTLP_ENDPOINT | Спільна кінцева точка збирача OTLP/HTTP для експорту OpenTelemetry |
OTEL_EXPORTER_OTLP_*_ENDPOINT | Специфічні для сигналів кінцеві точки OTLP для трас, метрик або журналів |
OTEL_EXPORTER_OTLP_PROTOCOL | Перевизначення протоколу OTLP. Наразі підтримується лише http/protobuf |
OTEL_SERVICE_NAME | Ім’я сервісу, що використовується для ресурсів OpenTelemetry |
OTEL_SEMCONV_STABILITY_OPT_IN | Увімкнути найновіші експериментальні семантичні атрибути GenAI |
OPENCLAW_OTEL_PRELOADED | Пропустити запуск другого OpenTelemetry SDK, якщо один уже попередньо завантажено |
OPENCLAW_EXTRA_MOUNTS=/path/to/fork/extensions/synology-chat:/app/extensions/synology-chat:ro.
Цей змонтований каталог джерел перевизначає відповідний скомпільований пакет
/app/dist/extensions/synology-chat для того самого id Plugin.
Спостережуваність
Експорт OpenTelemetry є вихідним з контейнера Gateway до вашого збирача OTLP. Він не потребує опублікованого порту Docker. Якщо ви збираєте образ локально і хочете, щоб вбудований експортер OpenTelemetry був доступний всередині образу, додайте його runtime-залежності:@openclaw/diagnostics-otel з ClawHub у
запакованих установках Docker перед увімкненням експорту. Користувацькі образи,
зібрані з джерел, усе ще можуть додати локальні джерела Plugin через
OPENCLAW_EXTENSIONS=diagnostics-otel. Щоб увімкнути експорт, дозвольте й увімкніть
Plugin diagnostics-otel у конфігурації, потім встановіть
diagnostics.otel.enabled=true або використайте приклад конфігурації в Експорт
OpenTelemetry. Заголовки автентифікації збирача налаштовуються через
diagnostics.otel.headers, а не через змінні середовища Docker.
Метрики Prometheus використовують уже опублікований порт Gateway. Установіть
clawhub:@openclaw/diagnostics-prometheus, увімкніть Plugin
diagnostics-prometheus, потім виконуйте scrape:
/metrics або неавтентифікований шлях reverse-proxy. Див.
Метрики Prometheus.
Перевірки справності
Кінцеві точки проб контейнера (автентифікація не потрібна):HEALTHCHECK, який перевіряє /healthz.
Якщо перевірки продовжують не проходити, Docker позначає контейнер як unhealthy, і
системи оркестрації можуть перезапустити або замінити його.
Автентифікований глибокий знімок справності:
LAN і loopback
scripts/docker/setup.sh за замовчуванням встановлює OPENCLAW_GATEWAY_BIND=lan, щоб доступ хоста до
http://127.0.0.1:18789 працював через публікацію порту Docker.
lan(за замовчуванням): браузер хоста і CLI хоста можуть досягти опублікованого порту Gateway.loopback: лише процеси всередині мережевого простору імен контейнера можуть напряму досягти Gateway.
gateway.bind (lan / loopback / custom /
tailnet / auto), а не псевдоніми хоста на кшталт 0.0.0.0 або 127.0.0.1.Локальні провайдери хоста
Коли OpenClaw працює в Docker,127.0.0.1 всередині контейнера — це сам контейнер,
а не ваша хост-машина. Використовуйте host.docker.internal для провайдерів ШІ, які
запускаються на хості:
| Провайдер | Типова URL-адреса хоста | URL-адреса для Docker setup |
|---|---|---|
| LM Studio | http://127.0.0.1:1234 | http://host.docker.internal:1234 |
| Ollama | http://127.0.0.1:11434 | http://host.docker.internal:11434 |
docker-compose.yml зіставляє host.docker.internal з
host gateway Docker для Linux Docker Engine. Docker Desktop уже надає
те саме ім’я хоста на macOS і Windows.
Сервіси хоста також мають слухати адресу, доступну з Docker:
docker run, додайте таке саме
зіставлення хоста самостійно, наприклад
--add-host=host.docker.internal:host-gateway.
Bonjour / mDNS
Мережева bridge-схема Docker зазвичай ненадійно пересилає multicast Bonjour/mDNS (224.0.0.251:5353). Тому вбудоване налаштування Compose за замовчуванням встановлює
OPENCLAW_DISABLE_BONJOUR=1, щоб Gateway не потрапляв у crash-loop і не перезапускав
оголошення повторно, коли bridge відкидає multicast-трафік.
Використовуйте опубліковану URL-адресу Gateway, Tailscale або wide-area DNS-SD для хостів Docker.
Встановлюйте OPENCLAW_DISABLE_BONJOUR=0 лише під час запуску з host networking, macvlan
або іншою мережею, де відомо, що multicast mDNS працює.
Щодо нюансів і усунення несправностей див. Виявлення Bonjour.
Сховище та сталість
Docker Compose bind-mount-итьOPENCLAW_CONFIG_DIR до /home/node/.openclaw,
OPENCLAW_WORKSPACE_DIR до /home/node/.openclaw/workspace, а
OPENCLAW_AUTH_PROFILE_SECRET_DIR до /home/node/.config/openclaw, тому ці
шляхи зберігаються після заміни контейнера. Якщо будь-яка змінна не задана, вбудований
docker-compose.yml використовує fallback під ${HOME}, або /tmp, якщо сам HOME
також відсутній. Це запобігає виведенню docker compose up специфікації тому
з порожнім джерелом у мінімальних середовищах.
У цьому змонтованому каталозі конфігурації OpenClaw зберігає:
openclaw.jsonдля конфігурації поведінкиagents/<agentId>/agent/auth-profiles.jsonдля збереженої OAuth/API-key автентифікації провайдера.envдля runtime-секретів із середовища, таких якOPENCLAW_GATEWAY_TOKEN
OPENCLAW_CONFIG_DIR.
Установлені завантажувані компоненти Plugin зберігають стан своїх пакетів у змонтованому домашньому каталозі OpenClaw, тому записи встановлення компонентів Plugin і кореневі каталоги пакетів переживають заміну контейнера. Запуск Gateway не створює дерева залежностей вбудованих компонентів Plugin.
Повні відомості про збереження даних у розгортаннях на ВМ див.
Середовище виконання Docker VM - що де зберігається.
Гарячі точки зростання диска: стежте за media/, файлами JSONL сеансів,
cron/runs/*.jsonl, кореневими каталогами пакетів установлених компонентів Plugin і змінними файловими журналами
у /tmp/openclaw/.
Допоміжні засоби оболонки (необов’язково)
Для простішого щоденного керування Docker установітьClawDock:
scripts/shell-helpers/clawdock-helpers.sh, повторно виконайте наведену вище команду встановлення, щоб локальний файл допоміжних засобів відстежував нове розташування.
Потім використовуйте clawdock-start, clawdock-stop, clawdock-dashboard тощо. Виконайте
clawdock-help, щоб переглянути всі команди.
Повний посібник із допоміжних засобів див. у ClawDock.
Увімкнути пісочницю агента для Docker Gateway
Увімкнути пісочницю агента для Docker Gateway
docker.sock лише після успішного проходження передумов пісочниці. Якщо
налаштування пісочниці не вдається завершити, скрипт скидає agents.defaults.sandbox.mode
до off. Ходи режиму коду Codex усе ще обмежені Codex
workspace-write, поки пісочниця OpenClaw активна; не монтуйте
Docker-сокет хоста в контейнери пісочниці агента.Автоматизація / CI (неінтерактивно)
Автоматизація / CI (неінтерактивно)
-T:Примітка щодо безпеки спільної мережі
Примітка щодо безпеки спільної мережі
openclaw-cli використовує network_mode: "service:openclaw-gateway", щоб команди CLI
могли звертатися до Gateway через 127.0.0.1. Розглядайте це як спільну
межу довіри. Конфігурація compose прибирає NET_RAW/NET_ADMIN і вмикає
no-new-privileges як для openclaw-gateway, так і для openclaw-cli.Збої DNS Docker Desktop в openclaw-cli
Збої DNS Docker Desktop в openclaw-cli
openclaw-cli не виконуються після скидання NET_RAW, що проявляється як
EAI_AGAIN під час команд на базі npm, як-от openclaw plugins install.
Для звичайної роботи Gateway залишайте типовий посилений compose-файл. Наведене
нижче локальне перевизначення послаблює безпекову конфігурацію контейнера CLI,
відновлюючи типові можливості Docker, тож використовуйте його лише для одноразової команди CLI,
якій потрібен доступ до реєстру пакетів, а не як типовий виклик Compose:openclaw-cli, відтворіть його
з тим самим перевизначенням. docker compose exec і docker exec не можуть
змінити можливості Linux у вже створеному контейнері.Дозволи та EACCES
Дозволи та EACCES
node (UID 1000). Якщо ви бачите помилки дозволів на
/home/node/.openclaw, переконайтеся, що ваші bind mount на хості належать UID 1000:blocked plugin candidate: suspicious ownership (... uid=1000, expected uid=0 or root)
із подальшим plugin present but blocked. Це означає, що UID процесу та
власник змонтованого каталогу Plugin не збігаються. Надавайте перевагу запуску контейнера з
типовим UID 1000 і виправленню власника bind mount. Виконуйте chown
/path/to/openclaw-config/npm до root:root лише якщо ви навмисно запускаєте
OpenClaw як root у довгостроковій перспективі.Швидші перебудови
Швидші перебудови
pnpm install, якщо lockfile не змінилися:Опції контейнера для досвідчених користувачів
Опції контейнера для досвідчених користувачів
node. Для
повнішого за можливостями контейнера:- Зберігайте
/home/node:export OPENCLAW_HOME_VOLUME="openclaw_home" - Вбудуйте системні залежності:
export OPENCLAW_DOCKER_APT_PACKAGES="git curl jq" - Вбудуйте Playwright Chromium:
export OPENCLAW_INSTALL_BROWSER=1 - Або встановіть браузери Playwright у збережений том:
- Зберігайте завантаження браузера: використовуйте
OPENCLAW_HOME_VOLUMEабоOPENCLAW_EXTRA_MOUNTS. OpenClaw автоматично виявляє керований Playwright Chromium з Docker-образу на Linux.
OpenAI Codex OAuth (Docker без графічного інтерфейсу)
OpenAI Codex OAuth (Docker без графічного інтерфейсу)
Метадані базового образу
Метадані базового образу
node:24-bookworm-slim і включає tini як init-процес точки входу (PID 1), щоб процеси-зомбі прибиралися, а сигнали коректно оброблялися в довготривалих контейнерах. Він публікує анотації базового образу OCI, зокрема org.opencontainers.image.base.name,
org.opencontainers.image.source та інші. Базовий digest Node
оновлюється через PR Dependabot для базового Docker-образу; збірки випусків не запускають
шар оновлення дистрибутива. Див.
анотації образів OCI.Запускаєте на VPS?
Див. Hetzner (Docker VPS) і Середовище виконання Docker VM для спільних кроків розгортання на ВМ, зокрема вбудовування бінарних файлів, збереження даних і оновлення.Пісочниця агента
Колиagents.defaults.sandbox увімкнено з бекендом Docker, Gateway
виконує інструменти агента (оболонка, читання/запис файлів тощо) в ізольованих Docker-контейнерах,
поки сам Gateway залишається на хості. Це створює жорстку межу
навколо ненадійних або багатокористувацьких сеансів агентів без контейнеризації всього
Gateway.
Область дії пісочниці може бути на агента (типово), на сеанс або спільною. Кожна область
отримує власну робочу область, змонтовану в /workspace. Ви також можете налаштувати
політики дозволу/заборони інструментів, ізоляцію мережі, обмеження ресурсів і браузерні
контейнери.
Повну конфігурацію, образи, примітки щодо безпеки та багатоагентні профілі див. тут:
- Пісочниця — повний довідник пісочниці
- OpenShell — інтерактивний доступ до оболонки контейнерів пісочниці
- Багатоагентна пісочниця та інструменти — перевизначення для окремих агентів
Швидке ввімкнення
docker build.
Усунення несправностей
Образ відсутній або контейнер пісочниці не запускається
Образ відсутній або контейнер пісочниці не запускається
scripts/sandbox-setup.sh
(робоча копія вихідного коду) або вбудованої команди docker build з Пісочниця § Образи та налаштування (встановлення через npm),
або встановіть для agents.defaults.sandbox.docker.image свій користувацький образ.
Контейнери автоматично створюються для кожного сеансу за потреби.Помилки дозволів у пісочниці
Помилки дозволів у пісочниці
docker.user у UID:GID, що відповідає власнику змонтованої робочої області,
або змініть власника папки робочої області за допомогою chown.Користувацькі інструменти не знайдено в пісочниці
Користувацькі інструменти не знайдено в пісочниці
sh -lc (login shell), яка зчитує
/etc/profile і може скинути PATH. Встановіть docker.env.PATH, щоб додати ваші
шляхи до користувацьких інструментів на початок, або додайте скрипт у /etc/profile.d/ у вашому Dockerfile.Процес завершено через OOM під час збирання образу (код виходу 137)
Процес завершено через OOM під час збирання образу (код виходу 137)
Не авторизовано або в Control UI потрібне сполучення
Не авторизовано або в Control UI потрібне сполучення
Ціль Gateway показує ws://172.x.x.x або помилки сполучення з Docker CLI
Ціль Gateway показує ws://172.x.x.x або помилки сполучення з Docker CLI
Пов’язане
- Огляд встановлення — усі способи встановлення
- Podman — альтернатива Podman для Docker
- ClawDock — спільнотне налаштування Docker Compose
- Оновлення — підтримання OpenClaw в актуальному стані
- Конфігурація — конфігурація Gateway після встановлення