Docker (opcjonalnie)
Docker jest opcjonalny. Używaj go tylko wtedy, gdy chcesz mieć gateway w kontenerze albo zweryfikować przepływ Docker.Czy Docker jest dla mnie odpowiedni?
- Tak: chcesz izolowanego, tymczasowego środowiska gateway albo uruchomić OpenClaw na hoście bez lokalnych instalacji.
- Nie: uruchamiasz na własnej maszynie i chcesz po prostu najszybszej pętli developerskiej. Zamiast tego użyj standardowego przepływu instalacji.
- Uwaga dotycząca sandboxingu: sandboxing agentów również używa Docker, ale nie wymaga uruchamiania całego gateway w Docker. Zobacz Sandboxing.
Wymagania wstępne
- Docker Desktop (lub Docker Engine) + Docker Compose v2
- Co najmniej 2 GB RAM do budowania obrazu (
pnpm installmoże zostać zakończone przez OOM na hostach 1 GB z kodem wyjścia 137) - Wystarczająca ilość miejsca na dysku na obrazy i logi
- Jeśli uruchamiasz na VPS/publicznym hoście, przejrzyj
Utwardzanie bezpieczeństwa dla ekspozycji sieciowej,
zwłaszcza politykę zapory Docker
DOCKER-USER.
Gateway w kontenerze
Zbuduj obraz
Z katalogu głównego repozytorium uruchom skrypt konfiguracji:To lokalnie buduje obraz gateway. Aby zamiast tego użyć gotowego obrazu:Gotowe obrazy są publikowane w
GitHub Container Registry.
Typowe tagi:
main, latest, <version> (np. 2026.2.26).Zakończ onboarding
Skrypt konfiguracji uruchamia onboarding automatycznie. W jego trakcie:
- poprosi o klucze API dostawców
- wygeneruje token gateway i zapisze go do
.env - uruchomi gateway przez Docker Compose
openclaw-gateway bezpośrednio. openclaw-cli służy do poleceń uruchamianych po
tym, jak kontener gateway już istnieje.Otwórz Control UI
Otwórz
http://127.0.0.1:18789/ w przeglądarce i wklej skonfigurowany
współdzielony sekret w Ustawieniach. Skrypt konfiguracji domyślnie zapisuje token do .env;
jeśli zmienisz konfigurację kontenera na uwierzytelnianie hasłem, użyj zamiast tego
tego hasła.Potrzebujesz znowu URL?Przepływ ręczny
Jeśli wolisz uruchamiać każdy krok samodzielnie zamiast używać skryptu konfiguracji:Uruchamiaj
docker compose z katalogu głównego repozytorium. Jeśli włączyłeś OPENCLAW_EXTRA_MOUNTS
lub OPENCLAW_HOME_VOLUME, skrypt konfiguracji zapisuje docker-compose.extra.yml;
dołącz go za pomocą -f docker-compose.yml -f docker-compose.extra.yml.Ponieważ
openclaw-cli współdzieli przestrzeń nazw sieci openclaw-gateway, jest to
narzędzie po uruchomieniu. Przed docker compose up -d openclaw-gateway uruchamiaj onboarding
i zapisy konfiguracji czasu konfiguracji przez openclaw-gateway z
--no-deps --entrypoint node.Zmienne środowiskowe
Skrypt konfiguracji akceptuje te opcjonalne zmienne środowiskowe:| Zmienna | Cel |
|---|---|
OPENCLAW_IMAGE | Użyj zdalnego obrazu zamiast budować lokalnie |
OPENCLAW_DOCKER_APT_PACKAGES | Zainstaluj dodatkowe pakiety apt podczas budowania (nazwy rozdzielane spacjami) |
OPENCLAW_EXTENSIONS | Wstępnie zainstaluj zależności rozszerzeń podczas budowania (nazwy rozdzielane spacjami) |
OPENCLAW_EXTRA_MOUNTS | Dodatkowe bind mounty hosta (rozdzielane przecinkami source:target[:opts]) |
OPENCLAW_HOME_VOLUME | Zachowaj /home/node w nazwanym wolumenie Docker |
OPENCLAW_SANDBOX | Włącz bootstrap sandboxa (1, true, yes, on) |
OPENCLAW_DOCKER_SOCKET | Nadpisz ścieżkę do socketu Docker |
Kontrole zdrowia
Endpointy kontroli kontenera (bez wymaganego uwierzytelniania):HEALTHCHECK, które odpytuje /healthz.
Jeśli kontrole stale kończą się niepowodzeniem, Docker oznacza kontener jako unhealthy, a
systemy orkiestracji mogą go restartować albo zastępować.
Uwierzytelniona głęboka migawka stanu zdrowia:
LAN vs loopback
scripts/docker/setup.sh domyślnie ustawia OPENCLAW_GATEWAY_BIND=lan, aby dostęp hosta do
http://127.0.0.1:18789 działał z publikowaniem portów Docker.
lan(domyślnie): przeglądarka hosta i CLI hosta mogą osiągnąć opublikowany port gateway.loopback: tylko procesy wewnątrz przestrzeni nazw sieci kontenera mogą bezpośrednio osiągnąć gateway.
Używaj wartości trybu bind w
gateway.bind (lan / loopback / custom /
tailnet / auto), a nie aliasów hosta takich jak 0.0.0.0 lub 127.0.0.1.Przechowywanie i trwałość
Docker Compose bind-mountujeOPENCLAW_CONFIG_DIR do /home/node/.openclaw oraz
OPENCLAW_WORKSPACE_DIR do /home/node/.openclaw/workspace, więc te ścieżki
przetrwają wymianę kontenera.
Ten zamontowany katalog konfiguracji to miejsce, w którym OpenClaw przechowuje:
openclaw.jsondla konfiguracji zachowaniaagents/<agentId>/agent/auth-profiles.jsondla zapisanych danych uwierzytelniania dostawców OAuth/klucz API.envdla sekretów środowiska uruchomieniowego opartych na env, takich jakOPENCLAW_GATEWAY_TOKEN
media/, pliki JSONL sesji, cron/runs/*.jsonl
oraz rotowane logi plikowe w /tmp/openclaw/.
Helpery powłoki (opcjonalnie)
Aby ułatwić codzienne zarządzanie Docker, zainstalujClawDock:
scripts/shell-helpers/clawdock-helpers.sh, uruchom ponownie powyższe polecenie instalacji, aby lokalny plik helpera śledził nową lokalizację.
Następnie używaj clawdock-start, clawdock-stop, clawdock-dashboard itd. Uruchom
clawdock-help, aby zobaczyć wszystkie polecenia.
Zobacz ClawDock, aby uzyskać pełny przewodnik po helperze.
Włącz sandbox agenta dla gateway Docker
Włącz sandbox agenta dla gateway Docker
docker.sock dopiero po przejściu wymagań wstępnych sandboxa. Jeśli
konfiguracja sandboxa nie może zostać ukończona, skrypt resetuje agents.defaults.sandbox.mode
do off.Automatyzacja / CI (nieinteraktywnie)
Automatyzacja / CI (nieinteraktywnie)
Wyłącz przydział pseudo-TTY Compose za pomocą
-T:Uwaga bezpieczeństwa dotycząca współdzielonej sieci
Uwaga bezpieczeństwa dotycząca współdzielonej sieci
openclaw-cli używa network_mode: "service:openclaw-gateway", dzięki czemu polecenia CLI
mogą osiągać gateway przez 127.0.0.1. Traktuj to jako współdzieloną
granicę zaufania. Konfiguracja compose usuwa NET_RAW/NET_ADMIN i włącza
no-new-privileges dla openclaw-cli.Uprawnienia i EACCES
Uprawnienia i EACCES
Obraz działa jako
node (uid 1000). Jeśli widzisz błędy uprawnień na
/home/node/.openclaw, upewnij się, że bind mounty hosta są własnością uid 1000:Szybsze przebudowy
Szybsze przebudowy
Uporządkuj Dockerfile tak, aby warstwy zależności były buforowane. Pozwala to uniknąć ponownego uruchamiania
pnpm install, chyba że zmienią się lockfile:Opcje kontenera dla zaawansowanych użytkowników
Opcje kontenera dla zaawansowanych użytkowników
Domyślny obraz stawia bezpieczeństwo na pierwszym miejscu i działa jako nieuprzywilejowany
node. Aby uzyskać bardziej
rozbudowany kontener:- Zachowaj
/home/node:export OPENCLAW_HOME_VOLUME="openclaw_home" - Wbuduj zależności systemowe:
export OPENCLAW_DOCKER_APT_PACKAGES="git curl jq" - Zainstaluj przeglądarki Playwright:
- Zachowaj pobrane pliki przeglądarek: ustaw
PLAYWRIGHT_BROWSERS_PATH=/home/node/.cache/ms-playwrighti użyjOPENCLAW_HOME_VOLUMElubOPENCLAW_EXTRA_MOUNTS.
OpenAI Codex OAuth (Docker bez interfejsu graficznego)
OpenAI Codex OAuth (Docker bez interfejsu graficznego)
Jeśli wybierzesz OpenAI Codex OAuth w kreatorze, otworzy on URL w przeglądarce. W
konfiguracjach Docker lub headless skopiuj pełny URL przekierowania, na który trafisz, i wklej
go z powrotem do kreatora, aby zakończyć uwierzytelnianie.
Metadane obrazu bazowego
Metadane obrazu bazowego
Główny obraz Docker używa
node:24-bookworm i publikuje adnotacje obrazu bazowego OCI,
w tym org.opencontainers.image.base.name,
org.opencontainers.image.source i inne. Zobacz
OCI image annotations.Uruchamianie na VPS?
Zobacz Hetzner (Docker VPS) i Docker VM Runtime, aby poznać wspólne kroki wdrożenia na VM, w tym przygotowanie binariów, trwałość i aktualizacje.Sandbox agenta
Gdyagents.defaults.sandbox jest włączone, gateway uruchamia wykonywanie narzędzi agenta
(powłoka, odczyt/zapis plików itd.) wewnątrz izolowanych kontenerów Docker, podczas gdy
sam gateway pozostaje na hoście. Daje to twardą granicę wokół niezaufanych lub
wielodzierżawnych sesji agentów bez konteneryzacji całego gateway.
Zakres sandboxa może być per agent (domyślnie), per sesja albo współdzielony. Każdy zakres
otrzymuje własny obszar roboczy zamontowany pod /workspace. Możesz także konfigurować
polityki dozwalania/blokowania narzędzi, izolację sieci, limity zasobów i kontenery przeglądarek.
Pełną konfigurację, obrazy, uwagi dotyczące bezpieczeństwa i profile multi-agent znajdziesz tutaj:
- Sandboxing — pełna dokumentacja sandboxa
- OpenShell — interaktywny dostęp do powłoki kontenerów sandboxa
- Multi-Agent Sandbox and Tools — nadpisania per agent
Szybkie włączenie
Rozwiązywanie problemów
Brak obrazu lub kontener sandboxa się nie uruchamia
Brak obrazu lub kontener sandboxa się nie uruchamia
Zbuduj obraz sandboxa za pomocą
scripts/sandbox-setup.sh
albo ustaw agents.defaults.sandbox.docker.image na własny obraz niestandardowy.
Kontenery są tworzone automatycznie dla każdej sesji na żądanie.Błędy uprawnień w sandboxie
Błędy uprawnień w sandboxie
Ustaw
docker.user na UID:GID zgodne z własnością zamontowanego obszaru roboczego,
albo wykonaj chown na folderze obszaru roboczego.Niestandardowe narzędzia nie są znajdowane w sandboxie
Niestandardowe narzędzia nie są znajdowane w sandboxie
OpenClaw uruchamia polecenia za pomocą
sh -lc (powłoka logowania), która ładuje
/etc/profile i może resetować PATH. Ustaw docker.env.PATH, aby dodać na początku własne
ścieżki narzędzi, albo dodaj skrypt w /etc/profile.d/ w swoim Dockerfile.Zakończenie przez OOM podczas budowania obrazu (exit 137)
Zakończenie przez OOM podczas budowania obrazu (exit 137)
VM potrzebuje co najmniej 2 GB RAM. Użyj większej klasy maszyny i spróbuj ponownie.
Unauthorized lub wymagane parowanie w Control UI
Unauthorized lub wymagane parowanie w Control UI
Cel gateway pokazuje ws://172.x.x.x albo błędy parowania z Docker CLI
Cel gateway pokazuje ws://172.x.x.x albo błędy parowania z Docker CLI
Zresetuj tryb i bind gateway:
Powiązane
- Install Overview — wszystkie metody instalacji
- Podman — alternatywa Podman dla Docker
- ClawDock — konfiguracja społeczności Docker Compose
- Updating — utrzymywanie OpenClaw na bieżąco
- Configuration — konfiguracja gateway po instalacji