Docker (opcjonalnie)
Docker jest opcjonalny. Używaj go tylko wtedy, gdy chcesz mieć gateway w kontenerze albo zweryfikować przepływ Dockera.Czy Docker jest dla mnie odpowiedni?
- Tak: chcesz mieć odizolowane, tymczasowe środowisko gatewaya albo uruchamiać OpenClaw na hoście bez lokalnych instalacji.
- Nie: uruchamiasz system na własnej maszynie i chcesz po prostu najszybszej pętli deweloperskiej. Zamiast tego użyj standardowego przepływu instalacji.
- Uwaga o sandboxingu: sandboxing agenta również używa Dockera, ale nie wymaga uruchamiania całego gatewaya w Dockerze. 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 z 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, zapoznaj się z
utwardzaniem zabezpieczeń przy ekspozycji sieciowej,
zwłaszcza z polityką zapory
DOCKER-USERw Dockerze.
Gateway w kontenerze
Zbuduj obraz
W katalogu głównym repozytorium uruchom skrypt konfiguracji:Spowoduje to lokalne zbudowanie obrazu gatewaya. Aby zamiast tego użyć gotowego obrazu:Gotowe obrazy są publikowane w
GitHub Container Registry.
Typowe tagi:
main, latest, <version> (np. 2026.2.26).Ukończ onboarding
Skrypt konfiguracji uruchamia onboarding automatycznie. W jego ramach:
- pojawi się prośba o klucze API providera
- zostanie wygenerowany token gatewaya i zapisany do
.env - gateway zostanie uruchomiony przez Docker Compose
openclaw-gateway bezpośrednio. openclaw-cli służy do poleceń uruchamianych po
tym, jak kontener gatewaya już istnieje.Otwórz Control UI
Otwórz
http://127.0.0.1:18789/ w przeglądarce i wklej skonfigurowany
wspólny sekret w Settings. Skrypt konfiguracji domyślnie zapisuje token do .env; jeśli przełączysz konfigurację kontenera na uwierzytelnianie hasłem, użyj zamiast tego
tego hasła.Potrzebujesz ponownie 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 używane po starcie. Przed docker compose up -d openclaw-gateway uruchamiaj onboarding
i zapisy konfiguracji w czasie konfiguracji przez openclaw-gateway z
--no-deps --entrypoint node.Zmienne środowiskowe
Skrypt konfiguracji akceptuje następujące opcjonalne zmienne środowiskowe:| Zmienna | Cel |
|---|---|
OPENCLAW_IMAGE | Użyj zdalnego obrazu zamiast budować lokalnie |
OPENCLAW_DOCKER_APT_PACKAGES | Zainstaluj dodatkowe pakiety apt podczas builda (nazwy rozdzielone spacjami) |
OPENCLAW_EXTENSIONS | Wstępnie zainstaluj zależności rozszerzeń podczas builda (nazwy rozdzielone spacjami) |
OPENCLAW_EXTRA_MOUNTS | Dodatkowe bind mounty hosta (rozdzielone przecinkami source:target[:opts]) |
OPENCLAW_HOME_VOLUME | Utrwal /home/node w nazwanym wolumenie Docker |
OPENCLAW_SANDBOX | Włącz bootstrap sandboxa (1, true, yes, on) |
OPENCLAW_DOCKER_SOCKET | Nadpisz ścieżkę do gniazda Docker |
Kontrole stanu
Endpointy probe kontenera (bez wymaganego auth):HEALTHCHECK, który wysyła ping do /healthz.
Jeśli kontrole stale się nie powiodą, Docker oznaczy kontener jako unhealthy, a
systemy orkiestracji będą mogły go zrestartować lub wymienić.
Uwierzytelniony szczegółowy snapshot 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 Dockera.
lan(domyślnie): przeglądarka hosta i CLI hosta mogą osiągnąć opublikowany port gatewaya.loopback: tylko procesy wewnątrz przestrzeni nazw sieci kontenera mogą osiągnąć gateway bezpośrednio.
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 podmontowujeOPENCLAW_CONFIG_DIR do /home/node/.openclaw oraz
OPENCLAW_WORKSPACE_DIR do /home/node/.openclaw/workspace, więc te ścieżki
przetrwają wymianę kontenera.
To podmontowane katalog konfiguracji to miejsce, w którym OpenClaw przechowuje:
openclaw.jsondla konfiguracji zachowaniaagents/<agentId>/agent/auth-profiles.jsondla zapisanego uwierzytelniania OAuth/kluczem API providera.envdla sekretów runtime opartych na env, takich jakOPENCLAW_GATEWAY_TOKEN
media/, pliki JSONL sesji, cron/runs/*.jsonl
oraz rotujące logi plikowe w /tmp/openclaw/.
Pomocniki shella (opcjonalnie)
Aby ułatwić codzienne zarządzanie Dockerem, zainstalujClawDock:
scripts/shell-helpers/clawdock-helpers.sh, uruchom ponownie powyższe polecenie instalacji, aby lokalny plik pomocniczy śledził nową lokalizację.
Następnie używaj clawdock-start, clawdock-stop, clawdock-dashboard itd. Uruchom
clawdock-help, aby zobaczyć wszystkie polecenia.
Pełny przewodnik pomocników znajdziesz w ClawDock.
Włącz sandbox agenta dla gatewaya Docker
Włącz sandbox agenta dla gatewaya 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 (bez interakcji)
Automatyzacja / CI (bez interakcji)
Wyłącz przydział pseudo-TTY Compose za pomocą
-T:Uwaga o bezpieczeństwie współdzielonej sieci
Uwaga o bezpieczeństwie współdzielonej sieci
openclaw-cli używa network_mode: "service:openclaw-gateway", więc polecenia CLI
mogą osiągnąć 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 w 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
Ułóż Dockerfile tak, aby warstwy zależności były cache’owane. Pozwala to uniknąć ponownego uruchamiania
pnpm install, chyba że zmienią się lockfile:Zaawansowane opcje kontenera
Zaawansowane opcje kontenera
Domyślny obraz jest nastawiony przede wszystkim na bezpieczeństwo i działa jako nieuprzywilejowany
node. Aby uzyskać bardziej
rozbudowany kontener:- Utrwal
/home/node:export OPENCLAW_HOME_VOLUME="openclaw_home" - Dodaj zależności systemowe do obrazu:
export OPENCLAW_DOCKER_APT_PACKAGES="git curl jq" - Zainstaluj przeglądarki Playwright:
- Utrwal pobrane przeglądarki: ustaw
PLAYWRIGHT_BROWSERS_PATH=/home/node/.cache/ms-playwrighti użyjOPENCLAW_HOME_VOLUMElubOPENCLAW_EXTRA_MOUNTS.
OAuth OpenAI Codex (Docker bezgłowy)
OAuth OpenAI Codex (Docker bezgłowy)
Jeśli wybierzesz w kreatorze OAuth OpenAI Codex, otworzy się URL w przeglądarce. W
Dockerze lub konfiguracjach bezgłowych skopiuj pełny URL przekierowania, na który trafisz, i wklej
go z powrotem do kreatora, aby zakończyć auth.
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
adnotacje obrazu OCI.Uruchamianie na VPS?
Zobacz Hetzner (Docker VPS) i Docker VM Runtime, aby poznać kroki wspólnego wdrażania na VM, w tym wypiekanie binariów, trwałość i aktualizacje.Sandbox agenta
Gdyagents.defaults.sandbox jest włączone, gateway uruchamia wykonywanie narzędzi agenta
(shell, odczyt/zapis plików itd.) wewnątrz izolowanych kontenerów Dockera, podczas gdy
sam gateway pozostaje na hoście. Daje to twardą granicę wokół nieufnych lub
wielodzierżawnych sesji agentów bez konteneryzowania całego gatewaya.
Zakres sandboxa może być per agent (domyślnie), per sesja albo współdzielony. Każdy zakres
ma własny workspace montowany pod /workspace. Możesz również konfigurować
polityki zezwalania/zabraniania narzędzi, izolację sieci, limity zasobów oraz kontenery przeglądarki.
Pełną konfigurację, obrazy, uwagi dotyczące bezpieczeństwa i profile wieloagentowe znajdziesz w:
- Sandboxing — pełne informacje o sandboxie
- OpenShell — interaktywny dostęp do powłoki w kontenerach 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.
Kontenery są tworzone automatycznie per sesja na żądanie.Błędy uprawnień w sandboxie
Błędy uprawnień w sandboxie
Ustaw
docker.user na UID:GID zgodne z własnością zamontowanego workspace’u,
albo wykonaj chown katalogu workspace.Niestandardowe narzędzia nie są znajdowane w sandboxie
Niestandardowe narzędzia nie są znajdowane w sandboxie
OpenClaw uruchamia polecenia za pomocą
sh -lc (login shell), co wczytuje
/etc/profile i może resetować PATH. Ustaw docker.env.PATH, aby poprzedzić nim
ścieżki do własnych narzędzi, albo dodaj skrypt w /etc/profile.d/ w swoim Dockerfile.Zakończone przez OOM podczas builda obrazu (wyjście 137)
Zakończone przez OOM podczas builda obrazu (wyjście 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 gatewaya pokazuje ws://172.x.x.x lub błędy parowania z Docker CLI
Cel gatewaya pokazuje ws://172.x.x.x lub błędy parowania z Docker CLI
Zresetuj tryb i bind gatewaya:
Powiązane
- Przegląd instalacji — wszystkie metody instalacji
- Podman — alternatywa Podman dla Dockera
- ClawDock — społecznościowa konfiguracja Docker Compose
- Aktualizacja — utrzymywanie OpenClaw w aktualnym stanie
- Configuration — konfiguracja gatewaya po instalacji