Dlaczego Docker?
Uruchamianie OpenClaw w Docker zapewnia trzy kluczowe zalety w porównaniu z instalacją na gołym sprzęcie:
- 1.Izolacja bezpieczeństwa: Agent działa wewnątrz kontenera z ograniczonym dostępem do systemu hosta. Jeśli złośliwa umiejętność lub wstrzyknięcie promptu próbuje uzyskać dostęp do twoich plików, granica kontenera ogranicza zasięg zniszczeń.
- 2.Odtwarzalność: Ten sam obraz Docker działa identycznie na dowolnej maszynie — twoim laptopie, VPS-ie czy Raspberry Pi.
- 3.Łatwe czyszczenie: Chcesz zacząć od nowa? Usuń kontener i uruchom nowy. Żadnych pozostałych plików, żadnych zepsutych instalacji Node.js.
Wymagania wstępne
- •Docker Desktop (macOS/Windows) lub Docker Engine (Linux)
- •Docker Compose v2 (zawarty w Docker Desktop)
- •Co najmniej 2 GB RAM dostępne dla kontenera
- •Klucz API AI (Anthropic, OpenAI lub inny obsługiwany dostawca)
Szybki start
Opcja A: Oficjalny Docker Compose (zalecane)
Sklonuj repozytorium OpenClaw i użyj wbudowanej konfiguracji Docker:
git clone https://github.com/openclaw/openclaw.git
cd openclaw
Uruchom skrypt konfiguracyjny, który tworzy potrzebne katalogi i konfigurację:
bash docker-setup.sh
- •
~/.openclaw/— konfiguracja, SOUL.md, klucze API - •
~/openclaw/workspace/— pliki dostępne dla agenta
Uruchom kreator konfiguracji wewnątrz kontenera:
docker compose run --rm openclaw-cli onboard
Postępuj zgodnie z instrukcjami, aby skonfigurować klucz API i połączyć platformę czatową. Następnie uruchom bramę:
docker compose up -d openclaw-gateway
Twój agent działa teraz w tle.
Opcja B: Gotowy obraz
Jeśli nie chcesz klonować repozytorium, użyj oficjalnego gotowego obrazu:
docker run -d \
--name openclaw \
--restart unless-stopped \
-v ~/.openclaw:/root/.openclaw \
-v ~/openclaw/workspace:/root/workspace \
-p 3000:3000 \
ghcr.io/openclaw/openclaw:latest
Dokumentacja Docker Compose
Oto opatrzony komentarzami docker-compose.yml do użytku produkcyjnego:
version: "3.8"
services:
openclaw-gateway:
image: ghcr.io/openclaw/openclaw:latest
container_name: openclaw
restart: unless-stopped
ports:
- "3000:3000" # Web UI
volumes:
- ~/.openclaw:/root/.openclaw # Config and data
- ~/openclaw/workspace:/root/workspace # Agent workspace
environment:
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
- OPENAI_API_KEY=${OPENAI_API_KEY}
- TZ=Asia/Shanghai # Set your timezone
mem_limit: 2g # Prevent runaway memory usage
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
Utwórz plik .env w tym samym katalogu z kluczami API:
ANTHROPIC_API_KEY=sk-ant-xxxxx
OPENAI_API_KEY=sk-xxxxx
Zmienne środowiskowe
| Zmienna | Wymagana | Opis |
|---|---|---|
ANTHROPIC_API_KEY | Tak* | Klucz API Claude |
OPENAI_API_KEY | Nie | Klucz API GPT (jeśli używasz OpenAI) |
OPENCLAW_PORT | Nie | Port Web UI (domyślnie: 3000) |
OPENCLAW_HOME | Nie | Katalog danych wewnątrz kontenera |
TZ | Nie | Strefa czasowa dla zaplanowanych zadań |
*Wymagany jest co najmniej jeden klucz dostawcy AI.
Zarządzanie kontenerem
# Wyświetl logi
docker logs -f openclaw
# Zatrzymaj agenta
docker compose stop
# Uruchom agenta
docker compose up -d
# Zrestartuj po zmianach konfiguracji
docker compose restart
# Zaktualizuj do najnowszej wersji
docker compose pull
docker compose up -d
# Wejdź do powłoki kontenera
docker exec -it openclaw bash
# Uruchom polecenia CLI wewnątrz kontenera
docker exec openclaw openclaw skill list
docker exec openclaw openclaw status
Wzmocnienie bezpieczeństwa
Ogranicz dostęp do systemu plików
Montuj tylko katalogi, których twój agent faktycznie potrzebuje. Unikaj montowania całego katalogu domowego:
volumes:
- ~/.openclaw:/root/.openclaw:rw # Config (read-write)
- ~/documents:/root/docs:ro # Documents (read-only)
Izolacja sieciowa
Jeśli twój agent nie potrzebuje dostępu do usług sieci lokalnej, ogranicz jego sieć:
networks:
openclaw-net:
driver: bridge
internal: false # Set to true to block all external access
System plików root tylko do odczytu
Dla maksymalnego bezpieczeństwa ustaw system plików root na tylko do odczytu i pozwól na zapis tylko do konkretnych ścieżek:
read_only: true
tmpfs:
- /tmp
- /run
Aktualizowanie
OpenClaw wydaje nowe wersje często. Aby zaktualizować wdrożenie Docker:
docker compose pull # Pull latest image
docker compose up -d # Recreate container with new image
docker image prune -f # Clean up old images
Twoja konfiguracja i dane są zachowane w zamontowanych wolumenach, więc aktualizacje są niedestrukcyjne.
Rozwiązywanie problemów
Kontener natychmiast się zawiesza: Sprawdź logi poleceniem docker logs openclaw. Częste przyczyny: brakujące klucze API, niewystarczająca pamięć lub konflikty portów.
Kod QR WhatsApp się nie wyświetla: Uruchom onboarding w trybie interaktywnym: docker compose run --rm openclaw-cli onboard. Kod QR wymaga terminala obsługującego renderowanie.
Błędy uprawnień na zamontowanych wolumenach: Upewnij się, że katalogi hosta istnieją i należą do twojego użytkownika: mkdir -p ~/.openclaw ~/openclaw/workspace.
Wysokie zużycie pamięci: Ustaw mem_limit: 2g w docker-compose.yml, aby zapobiec nadmiernemu zużyciu RAM przez kontener.
Więcej szczegółów znajdziesz w oficjalnej dokumentacji Docker oraz w docker-compose.yml w repozytorium.