Docker (необов’язково)
Docker необов’язковий. Використовуйте його лише якщо хочете контейнеризований gateway або перевіряєте Docker-потік.Чи підходить мені Docker?
- Так: вам потрібне ізольоване, тимчасове середовище gateway або ви хочете запускати OpenClaw на хості без локальних встановлень.
- Ні: ви запускаєте на власній машині й просто хочете найшвидший цикл розробки. Натомість використовуйте звичайний процес встановлення.
- Примітка щодо sandboxing: ізоляція агентів також використовує Docker, але для цього не потрібно запускати весь gateway у Docker. Див. Sandboxing.
Передумови
- Docker Desktop (або Docker Engine) + Docker Compose v2
- Щонайменше 2 ГБ RAM для збирання образу (
pnpm installможе бути завершено через OOM на хостах із 1 ГБ з кодом виходу 137) - Достатньо місця на диску для образів і журналів
- Якщо запускаєте на VPS/публічному хості, перегляньте
Посилення безпеки для мережевої доступності,
особливо політику фаєрвола Docker
DOCKER-USER.
Контейнеризований Gateway
Зберіть образ
У корені репозиторію виконайте скрипт налаштування:Це локально збирає образ gateway. Щоб натомість використати попередньо зібраний образ:Попередньо зібрані образи публікуються в
GitHub Container Registry.
Поширені теги:
main, latest, <version> (наприклад, 2026.2.26).Завершіть онбординг
Скрипт налаштування автоматично запускає онбординг. Він:
- запросить API-ключі провайдера
- згенерує токен gateway і запише його в
.env - запустить 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 | Попередньо встановити залежності розширень під час збирання (назви через пробіл) |
OPENCLAW_EXTRA_MOUNTS | Додаткові bind mounts хоста (через кому source:target[:opts]) |
OPENCLAW_HOME_VOLUME | Зберігати /home/node в іменованому Docker volume |
OPENCLAW_SANDBOX | Увімкнути bootstrap sandbox (1, true, yes, on) |
OPENCLAW_DOCKER_SOCKET | Перевизначити шлях до Docker socket |
Перевірки стану
Кінцеві точки перевірки контейнера (автентифікація не потрібна):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.Сховище та збереження даних
Docker Compose монтуєOPENCLAW_CONFIG_DIR до /home/node/.openclaw і
OPENCLAW_WORKSPACE_DIR до /home/node/.openclaw/workspace, тож ці шляхи
зберігаються після заміни контейнера.
У цьому змонтованому каталозі конфігурації OpenClaw зберігає:
openclaw.jsonдля конфігурації поведінкиagents/<agentId>/agent/auth-profiles.jsonдля збереженої OAuth/API-key автентифікації провайдерів.envдля секретів середовища виконання на основі env, таких якOPENCLAW_GATEWAY_TOKEN
media/, файлами session JSONL, cron/runs/*.jsonl
і ротаційними файловими журналами в /tmp/openclaw/.
Допоміжні команди оболонки (необов’язково)
Для зручнішого щоденного керування Docker установітьClawDock:
scripts/shell-helpers/clawdock-helpers.sh, повторно виконайте наведену вище команду встановлення, щоб ваш локальний файл helpers відстежував нове розташування.
Потім використовуйте clawdock-start, clawdock-stop, clawdock-dashboard тощо. Виконайте
clawdock-help, щоб побачити всі команди.
Див. ClawDock, щоб переглянути повний посібник із helpers.
Увімкнення sandbox агента для Docker gateway
Увімкнення sandbox агента для Docker gateway
docker.sock лише після успішного проходження передумов sandbox. Якщо
налаштування sandbox не вдається завершити, скрипт скидає agents.defaults.sandbox.mode
до off.Автоматизація / CI (неінтерактивно)
Автоматизація / CI (неінтерактивно)
Вимкніть виділення pseudo-TTY для Compose за допомогою
-T:Примітка щодо безпеки спільної мережі
Примітка щодо безпеки спільної мережі
openclaw-cli використовує network_mode: "service:openclaw-gateway", тому команди CLI
можуть звертатися до gateway через 127.0.0.1. Розглядайте це як спільну
межу довіри. Конфігурація compose прибирає NET_RAW/NET_ADMIN та вмикає
no-new-privileges для openclaw-cli.Права доступу та EACCES
Права доступу та EACCES
Образ працює від імені
node (uid 1000). Якщо ви бачите помилки прав доступу до
/home/node/.openclaw, переконайтеся, що ваші bind mounts хоста належать uid 1000:Швидші перебудови
Швидші перебудови
Упорядкуйте Dockerfile так, щоб шари залежностей кешувалися. Це дозволяє не запускати
pnpm install повторно, доки не зміняться lockfile-файли:Параметри контейнера для досвідчених користувачів
Параметри контейнера для досвідчених користувачів
Типовий образ орієнтований на безпеку та працює від непривілейованого користувача
node. Для більш
функціонального контейнера:- Зберігайте
/home/node:export OPENCLAW_HOME_VOLUME="openclaw_home" - Вбудуйте системні залежності:
export OPENCLAW_DOCKER_APT_PACKAGES="git curl jq" - Установіть браузери Playwright:
- Зберігайте завантаження браузера: установіть
PLAYWRIGHT_BROWSERS_PATH=/home/node/.cache/ms-playwrightі використовуйтеOPENCLAW_HOME_VOLUMEабоOPENCLAW_EXTRA_MOUNTS.
OpenAI Codex OAuth (headless Docker)
OpenAI Codex OAuth (headless Docker)
Якщо ви виберете у майстрі OpenAI Codex OAuth, відкриється URL-адреса в браузері. У
Docker або headless-середовищах скопіюйте повну URL-адресу перенаправлення, на яку ви потрапите, і вставте
її назад у майстер, щоб завершити автентифікацію.
Метадані базового образу
Метадані базового образу
Основний образ Docker використовує
node:24-bookworm і публікує анотації базового OCI-образу,
зокрема org.opencontainers.image.base.name,
org.opencontainers.image.source та інші. Див.
Анотації OCI-образу.Запуск на VPS?
Див. Hetzner (Docker VPS) і Docker VM Runtime, щоб переглянути кроки спільного VM-розгортання, зокрема вбудовування бінарних файлів, збереження даних і оновлення.Sandbox агента
Коли ввімкненоagents.defaults.sandbox, gateway виконує інструменти агента
(shell, читання/запис файлів тощо) в ізольованих Docker-контейнерах, тоді як
сам gateway залишається на хості. Це дає вам жорстку межу навколо недовірених або
багатокористувацьких сесій агентів без контейнеризації всього gateway.
Область дії sandbox може бути на рівні агента (типово), сесії або спільною. Для кожної області
використовується власний workspace, змонтований у /workspace. Ви також можете налаштувати
політики дозволу/заборони інструментів, ізоляцію мережі, обмеження ресурсів і
контейнери браузера.
Повну інформацію про конфігурацію, образи, примітки щодо безпеки та профілі з кількома агентами див. тут:
- Sandboxing — повний довідник із sandbox
- OpenShell — інтерактивний доступ до shell у sandbox-контейнерах
- Multi-Agent Sandbox and Tools — перевизначення для окремих агентів
Швидке ввімкнення
Усунення несправностей
Образ відсутній або sandbox-контейнер не запускається
Образ відсутній або sandbox-контейнер не запускається
Зберіть образ sandbox за допомогою
scripts/sandbox-setup.sh
або встановіть для agents.defaults.sandbox.docker.image свій користувацький образ.
Контейнери автоматично створюються за потреби для кожної сесії.Помилки прав доступу в sandbox
Помилки прав доступу в sandbox
Установіть
docker.user у UID:GID, що відповідає власнику змонтованого workspace,
або змініть власника папки workspace через chown.Користувацькі інструменти не знайдено в sandbox
Користувацькі інструменти не знайдено в sandbox
OpenClaw запускає команди через
sh -lc (login shell), який зчитує
/etc/profile і може скинути PATH. Установіть docker.env.PATH, щоб додати
ваші шляхи до користувацьких інструментів на початок, або додайте скрипт у /etc/profile.d/
у вашому Dockerfile.Завершено через OOM під час збирання образу (exit 137)
Завершено через OOM під час збирання образу (exit 137)
VM потрібні щонайменше 2 ГБ RAM. Використайте більший клас машини та повторіть спробу.
Unauthorized або потрібне pairing у Control UI
Unauthorized або потрібне pairing у Control UI
Ціль gateway показує ws://172.x.x.x або помилки pairing із Docker CLI
Ціль gateway показує ws://172.x.x.x або помилки pairing із Docker CLI
Скиньте режим і прив’язку gateway:
Пов’язане
- Install Overview — усі методи встановлення
- Podman — альтернатива Docker на базі Podman
- ClawDock — спільнотне налаштування Docker Compose
- Updating — як підтримувати OpenClaw в актуальному стані
- Configuration — конфігурація gateway після встановлення