Docker (opsional)
Docker bersifat opsional. Gunakan hanya jika Anda menginginkan gateway dalam container atau ingin memvalidasi alur Docker.Apakah Docker tepat untuk saya?
- Ya: Anda menginginkan lingkungan gateway yang terisolasi, sekali pakai, atau ingin menjalankan OpenClaw pada host tanpa instalasi lokal.
- Tidak: Anda menjalankan di mesin Anda sendiri dan hanya menginginkan loop pengembangan tercepat. Gunakan alur instalasi normal sebagai gantinya.
- Catatan sandboxing: sandboxing agen juga menggunakan Docker, tetapi itu tidak mengharuskan seluruh gateway berjalan di Docker. Lihat Sandboxing.
Prasyarat
- Docker Desktop (atau Docker Engine) + Docker Compose v2
- Minimal 2 GB RAM untuk build image (
pnpm installdapat dihentikan oleh OOM pada host 1 GB dengan exit 137) - Ruang disk yang cukup untuk image dan log
- Jika berjalan di VPS/host publik, tinjau
Penguatan keamanan untuk eksposur jaringan,
terutama kebijakan firewall Docker
DOCKER-USER.
Gateway dalam container
Build image
Dari root repo, jalankan skrip penyiapan:Ini membangun image gateway secara lokal. Untuk menggunakan image yang sudah dibangun sebelumnya:Image yang sudah dibangun sebelumnya dipublikasikan di
GitHub Container Registry.
Tag umum:
main, latest, <version> (misalnya 2026.2.26).Selesaikan onboarding
Skrip penyiapan menjalankan onboarding secara otomatis. Skrip ini akan:
- meminta API key provider
- menghasilkan token gateway dan menuliskannya ke
.env - memulai gateway melalui Docker Compose
openclaw-gateway secara langsung. openclaw-cli digunakan untuk perintah yang Anda jalankan setelah
container gateway sudah ada.Buka UI Control
Buka
http://127.0.0.1:18789/ di browser Anda dan tempelkan
shared secret yang telah dikonfigurasi ke Settings. Skrip penyiapan menulis token ke .env secara
default; jika Anda mengubah config container ke autentikasi kata sandi, gunakan
kata sandi tersebut.Perlu URL-nya lagi?Alur manual
Jika Anda lebih suka menjalankan setiap langkah sendiri alih-alih menggunakan skrip penyiapan:Jalankan
docker compose dari root repo. Jika Anda mengaktifkan OPENCLAW_EXTRA_MOUNTS
atau OPENCLAW_HOME_VOLUME, skrip penyiapan akan menulis docker-compose.extra.yml;
sertakan dengan -f docker-compose.yml -f docker-compose.extra.yml.Karena
openclaw-cli berbagi namespace jaringan milik openclaw-gateway, ini adalah
alat pasca-start. Sebelum docker compose up -d openclaw-gateway, jalankan onboarding
dan penulisan config saat setup melalui openclaw-gateway dengan
--no-deps --entrypoint node.Variabel lingkungan
Skrip penyiapan menerima variabel lingkungan opsional berikut:| Variabel | Tujuan |
|---|---|
OPENCLAW_IMAGE | Gunakan image remote alih-alih build secara lokal |
OPENCLAW_DOCKER_APT_PACKAGES | Instal paket apt tambahan selama build (dipisahkan spasi) |
OPENCLAW_EXTENSIONS | Pra-instal dependensi extension saat build (nama dipisahkan spasi) |
OPENCLAW_EXTRA_MOUNTS | Bind mount host tambahan (dipisahkan koma source:target[:opts]) |
OPENCLAW_HOME_VOLUME | Pertahankan /home/node dalam volume Docker bernama |
OPENCLAW_SANDBOX | Opt in ke bootstrap sandbox (1, true, yes, on) |
OPENCLAW_DOCKER_SOCKET | Override path socket Docker |
Health check
Endpoint probe container (tidak memerlukan auth):HEALTHCHECK bawaan yang melakukan ping ke /healthz.
Jika pemeriksaan terus gagal, Docker menandai container sebagai unhealthy dan
sistem orkestrasi dapat memulai ulang atau menggantinya.
Snapshot deep health yang diautentikasi:
LAN vs loopback
scripts/docker/setup.sh secara default menggunakan OPENCLAW_GATEWAY_BIND=lan sehingga akses host ke
http://127.0.0.1:18789 berfungsi dengan publikasi port Docker.
lan(default): browser host dan CLI host dapat mencapai port gateway yang dipublikasikan.loopback: hanya proses di dalam namespace jaringan container yang dapat mencapai gateway secara langsung.
Gunakan nilai mode bind di
gateway.bind (lan / loopback / custom /
tailnet / auto), bukan alias host seperti 0.0.0.0 atau 127.0.0.1.Penyimpanan dan persistensi
Docker Compose melakukan bind-mountOPENCLAW_CONFIG_DIR ke /home/node/.openclaw dan
OPENCLAW_WORKSPACE_DIR ke /home/node/.openclaw/workspace, sehingga path tersebut
tetap ada saat container diganti.
Direktori config yang di-mount itulah tempat OpenClaw menyimpan:
openclaw.jsonuntuk config perilakuagents/<agentId>/agent/auth-profiles.jsonuntuk auth OAuth/API key provider yang tersimpan.envuntuk secret runtime berbasis env sepertiOPENCLAW_GATEWAY_TOKEN
media/, file JSONL sesi, cron/runs/*.jsonl,
dan rolling file log di bawah /tmp/openclaw/.
Helper shell (opsional)
Untuk pengelolaan Docker sehari-hari yang lebih mudah, instalClawDock:
scripts/shell-helpers/clawdock-helpers.sh, jalankan ulang perintah instalasi di atas agar file helper lokal Anda mengikuti lokasi baru.
Lalu gunakan clawdock-start, clawdock-stop, clawdock-dashboard, dan seterusnya. Jalankan
clawdock-help untuk semua perintah.
Lihat ClawDock untuk panduan helper lengkap.
Aktifkan sandbox agen untuk gateway Docker
Aktifkan sandbox agen untuk gateway Docker
docker.sock setelah prasyarat sandbox lolos. Jika
penyiapan sandbox tidak dapat diselesaikan, skrip mereset agents.defaults.sandbox.mode
ke off.Otomatisasi / CI (non-interaktif)
Otomatisasi / CI (non-interaktif)
Nonaktifkan alokasi pseudo-TTY Compose dengan
-T:Catatan keamanan jaringan bersama
Catatan keamanan jaringan bersama
openclaw-cli menggunakan network_mode: "service:openclaw-gateway" sehingga perintah CLI
dapat menjangkau gateway melalui 127.0.0.1. Perlakukan ini sebagai batas
kepercayaan bersama. Config compose menghapus NET_RAW/NET_ADMIN dan mengaktifkan
no-new-privileges pada openclaw-cli.Izin dan EACCES
Izin dan EACCES
Image berjalan sebagai
node (uid 1000). Jika Anda melihat error izin pada
/home/node/.openclaw, pastikan bind mount host Anda dimiliki oleh uid 1000:Build ulang lebih cepat
Build ulang lebih cepat
Atur urutan Dockerfile Anda agar layer dependensi di-cache. Ini menghindari pengulangan
pnpm install kecuali lockfile berubah:Opsi container untuk power user
Opsi container untuk power user
Image default berfokus pada keamanan dan berjalan sebagai
node non-root. Untuk container yang
lebih lengkap fiturnya:- Pertahankan
/home/node:export OPENCLAW_HOME_VOLUME="openclaw_home" - Masukkan dependensi sistem:
export OPENCLAW_DOCKER_APT_PACKAGES="git curl jq" - Instal browser Playwright:
- Pertahankan unduhan browser: setel
PLAYWRIGHT_BROWSERS_PATH=/home/node/.cache/ms-playwrightdan gunakanOPENCLAW_HOME_VOLUMEatauOPENCLAW_EXTRA_MOUNTS.
OAuth OpenAI Codex (Docker headless)
OAuth OpenAI Codex (Docker headless)
Jika Anda memilih OAuth OpenAI Codex di wizard, browser akan membuka URL. Pada
Docker atau penyiapan headless, salin URL pengalihan lengkap tempat Anda mendarat lalu tempelkan
kembali ke wizard untuk menyelesaikan auth.
Metadata image dasar
Metadata image dasar
Image Docker utama menggunakan
node:24-bookworm dan memublikasikan anotasi
image dasar OCI termasuk org.opencontainers.image.base.name,
org.opencontainers.image.source, dan lainnya. Lihat
Anotasi image OCI.Menjalankan di VPS?
Lihat Hetzner (Docker VPS) dan Runtime VM Docker untuk langkah deployment VM bersama termasuk binary baking, persistensi, dan pembaruan.Sandbox Agen
Saatagents.defaults.sandbox diaktifkan, gateway menjalankan eksekusi alat agen
(shell, baca/tulis file, dan sebagainya) di dalam container Docker yang terisolasi sementara
gateway itu sendiri tetap berada di host. Ini memberi Anda dinding keras di sekitar sesi agen yang tidak tepercaya atau
multi-tenant tanpa membuat seluruh gateway berada dalam container.
Cakupan sandbox dapat per agen (default), per sesi, atau bersama. Setiap cakupan
mendapat workspace sendiri yang di-mount di /workspace. Anda juga dapat mengonfigurasi
kebijakan allow/deny alat, isolasi jaringan, batas resource, dan container browser.
Untuk konfigurasi lengkap, image, catatan keamanan, dan profil multi-agen, lihat:
- Sandboxing — referensi sandbox lengkap
- OpenShell — akses shell interaktif ke container sandbox
- Sandbox dan Alat Multi-Agen — override per agen
Aktifkan cepat
Pemecahan masalah
Image hilang atau container sandbox tidak mau mulai
Image hilang atau container sandbox tidak mau mulai
Build image sandbox dengan
scripts/sandbox-setup.sh
atau setel agents.defaults.sandbox.docker.image ke image khusus Anda.
Container dibuat otomatis per sesi sesuai permintaan.Error izin di sandbox
Error izin di sandbox
Setel
docker.user ke UID:GID yang cocok dengan kepemilikan workspace yang Anda mount,
atau jalankan chown pada folder workspace.Alat khusus tidak ditemukan di sandbox
Alat khusus tidak ditemukan di sandbox
OpenClaw menjalankan perintah dengan
sh -lc (login shell), yang memuat
/etc/profile dan dapat mereset PATH. Setel docker.env.PATH untuk menambahkan
path alat khusus Anda di depan, atau tambahkan skrip di bawah /etc/profile.d/ di Dockerfile Anda.Dihentikan OOM selama build image (exit 137)
Dihentikan OOM selama build image (exit 137)
VM memerlukan setidaknya 2 GB RAM. Gunakan kelas mesin yang lebih besar dan coba lagi.
Unauthorized atau pairing diperlukan di UI Control
Unauthorized atau pairing diperlukan di UI Control
Target gateway menampilkan ws://172.x.x.x atau error pairing dari Docker CLI
Target gateway menampilkan ws://172.x.x.x atau error pairing dari Docker CLI
Reset mode dan bind gateway:
Terkait
- Ikhtisar Instalasi — semua metode instalasi
- Podman — alternatif Podman untuk Docker
- ClawDock — penyiapan komunitas Docker Compose
- Updating — menjaga OpenClaw tetap mutakhir
- Configuration — konfigurasi gateway setelah instalasi