Docker (tùy chọn)
Docker là tùy chọn. Chỉ sử dụng nếu bạn muốn một gateway dạng container hoặc để kiểm tra quy trình Docker.Docker có phù hợp với bạn không?
- Có: nếu bạn muốn một môi trường gateway cô lập, có thể xóa bỏ hoặc chạy OpenClaw trên máy chủ mà không cần cài đặt cục bộ.
- Không: nếu bạn đang chạy trên máy của mình và chỉ muốn vòng lặp phát triển nhanh nhất. Thay vào đó, hãy sử dụng quy trình cài đặt thông thường.
- Lưu ý về sandboxing: sandboxing agent cũng sử dụng Docker, nhưng không yêu cầu toàn bộ gateway chạy trong Docker. Xem Sandboxing.
Yêu cầu trước
- Docker Desktop (hoặc Docker Engine) + Docker Compose v2
- Ít nhất 2 GB RAM để build image (
pnpm installcó thể bị OOM-killed trên máy chủ 1 GB với exit 137) - Đủ dung lượng đĩa cho image và log
- Nếu chạy trên VPS/máy chủ công cộng, hãy xem xét
Tăng cường bảo mật cho việc phơi bày mạng,
đặc biệt là chính sách firewall
DOCKER-USERcủa Docker.
Gateway dạng Container
Build image
Từ thư mục gốc của repo, chạy script thiết lập:Điều này sẽ build image gateway cục bộ. Để sử dụng image đã build sẵn:Các image đã build sẵn được công bố tại
GitHub Container Registry.
Các tag phổ biến:
main, latest, <version> (ví dụ: 2026.2.26).Hoàn tất onboarding
Script thiết lập sẽ tự động chạy onboarding. Nó sẽ:
- yêu cầu khóa API của nhà cung cấp
- tạo một token gateway và ghi vào
.env - khởi động gateway qua Docker Compose
Mở Control UI
Mở
http://127.0.0.1:18789/ trong trình duyệt và dán token vào
Settings.Cần URL một lần nữa?Quy trình thủ công
Nếu bạn muốn tự chạy từng bước thay vì sử dụng script thiết lập:Chạy
docker compose từ thư mục gốc của repo. Nếu bạn đã bật OPENCLAW_EXTRA_MOUNTS
hoặc OPENCLAW_HOME_VOLUME, script thiết lập sẽ ghi docker-compose.extra.yml;
bao gồm nó với -f docker-compose.yml -f docker-compose.extra.yml.Biến môi trường
Script thiết lập chấp nhận các biến môi trường tùy chọn sau:| Biến | Mục đích |
|---|---|
OPENCLAW_IMAGE | Sử dụng image từ xa thay vì build cục bộ |
OPENCLAW_DOCKER_APT_PACKAGES | Cài đặt thêm gói apt trong quá trình build (cách nhau bằng dấu cách) |
OPENCLAW_EXTENSIONS | Cài đặt trước các phụ thuộc extension khi build (tên cách nhau bằng dấu cách) |
OPENCLAW_EXTRA_MOUNTS | Mount bind thêm từ host (cách nhau bằng dấu phẩy source:target[:opts]) |
OPENCLAW_HOME_VOLUME | Duy trì /home/node trong một volume Docker được đặt tên |
OPENCLAW_SANDBOX | Chọn tham gia sandbox bootstrap (1, true, yes, on) |
OPENCLAW_DOCKER_SOCKET | Ghi đè đường dẫn socket Docker |
Kiểm tra sức khỏe
Các endpoint kiểm tra container (không yêu cầu xác thực):HEALTHCHECK tích hợp sẵn ping /healthz.
Nếu các kiểm tra liên tục thất bại, Docker đánh dấu container là unhealthy và
các hệ thống điều phối có thể khởi động lại hoặc thay thế nó.
Ảnh chụp nhanh sức khỏe sâu có xác thực:
LAN vs loopback
scripts/docker/setup.sh mặc định OPENCLAW_GATEWAY_BIND=lan để truy cập host vào
http://127.0.0.1:18789 hoạt động với việc xuất cổng Docker.
lan(mặc định): trình duyệt host và CLI host có thể truy cập cổng gateway đã xuất bản.loopback: chỉ các tiến trình bên trong namespace mạng container có thể truy cập trực tiếp vào gateway.
Sử dụng các giá trị chế độ bind trong
gateway.bind (lan / loopback / custom /
tailnet / auto), không sử dụng các alias host như 0.0.0.0 hoặc 127.0.0.1.Lưu trữ và duy trì
Docker Compose bind-mountsOPENCLAW_CONFIG_DIR vào /home/node/.openclaw và
OPENCLAW_WORKSPACE_DIR vào /home/node/.openclaw/workspace, vì vậy các đường dẫn đó
sẽ tồn tại sau khi thay thế container.
Để biết chi tiết đầy đủ về duy trì trên các triển khai VM, xem
Docker VM Runtime - What persists where.
Điểm nóng tăng trưởng đĩa: theo dõi media/, các file JSONL phiên, cron/runs/*.jsonl,
và các log file cuộn dưới /tmp/openclaw/.
Trợ giúp shell (tùy chọn)
Để quản lý Docker hàng ngày dễ dàng hơn, cài đặtClawDock:
clawdock-start, clawdock-stop, clawdock-dashboard, v.v. Chạy
clawdock-help để xem tất cả các lệnh.
Xem README Trợ giúp ClawDock.
Kích hoạt sandbox agent cho gateway Docker
Kích hoạt sandbox agent cho gateway Docker
docker.sock sau khi các điều kiện tiên quyết của sandbox được đáp ứng. Nếu
thiết lập sandbox không thể hoàn tất, script sẽ đặt lại agents.defaults.sandbox.mode
thành off.Tự động hóa / CI (không tương tác)
Tự động hóa / CI (không tương tác)
Vô hiệu hóa phân bổ pseudo-TTY của Compose với
-T:Lưu ý bảo mật mạng chia sẻ
Lưu ý bảo mật mạng chia sẻ
openclaw-cli sử dụng network_mode: "service:openclaw-gateway" để các lệnh CLI
có thể truy cập gateway qua 127.0.0.1. Xem đây là một ranh giới tin cậy chia sẻ. Cấu hình compose loại bỏ NET_RAW/NET_ADMIN và bật
no-new-privileges trên openclaw-cli.Quyền và EACCES
Quyền và EACCES
Image chạy dưới dạng
node (uid 1000). Nếu bạn thấy lỗi quyền trên
/home/node/.openclaw, hãy đảm bảo các mount bind của host thuộc sở hữu của uid 1000:Tái build nhanh hơn
Tái build nhanh hơn
Sắp xếp Dockerfile của bạn để các lớp phụ thuộc được cache. Điều này tránh việc chạy lại
pnpm install trừ khi các file lock thay đổi:Tùy chọn container cho người dùng chuyên nghiệp
Tùy chọn container cho người dùng chuyên nghiệp
Image mặc định ưu tiên bảo mật và chạy dưới dạng
node không root. Để có một container đầy đủ tính năng hơn:- Duy trì
/home/node:export OPENCLAW_HOME_VOLUME="openclaw_home" - Nướng các phụ thuộc hệ thống:
export OPENCLAW_DOCKER_APT_PACKAGES="git curl jq" - Cài đặt trình duyệt Playwright:
- Duy trì tải xuống trình duyệt: đặt
PLAYWRIGHT_BROWSERS_PATH=/home/node/.cache/ms-playwrightvà sử dụngOPENCLAW_HOME_VOLUMEhoặcOPENCLAW_EXTRA_MOUNTS.
OpenAI Codex OAuth (Docker không giao diện)
OpenAI Codex OAuth (Docker không giao diện)
Nếu bạn chọn OpenAI Codex OAuth trong wizard, nó sẽ mở một URL trình duyệt. Trong
Docker hoặc các thiết lập không giao diện, sao chép URL chuyển hướng đầy đủ mà bạn đến và dán
nó trở lại vào wizard để hoàn tất xác thực.
Metadata image cơ sở
Metadata image cơ sở
Image Docker chính sử dụng
node:24-bookworm và công bố các chú thích OCI base-image
bao gồm org.opencontainers.image.base.name,
org.opencontainers.image.source, và các chú thích khác. Xem
Chú thích image OCI.Chạy trên VPS?
Xem Hetzner (Docker VPS) và Docker VM Runtime để biết các bước triển khai VM chia sẻ bao gồm nướng nhị phân, duy trì và cập nhật.Agent Sandbox
Khiagents.defaults.sandbox được bật, gateway chạy thực thi công cụ agent
(shell, đọc/ghi file, v.v.) bên trong các container Docker cô lập trong khi
gateway tự nó vẫn ở trên host. Điều này cung cấp một bức tường cứng xung quanh các phiên agent không tin cậy hoặc đa người thuê mà không cần container hóa toàn bộ gateway.
Phạm vi sandbox có thể là theo agent (mặc định), theo phiên, hoặc chia sẻ. Mỗi phạm vi
có workspace riêng được mount tại /workspace. Bạn cũng có thể cấu hình
chính sách cho phép/từ chối công cụ, cô lập mạng, giới hạn tài nguyên, và các container trình duyệt.
Để biết cấu hình đầy đủ, image, ghi chú bảo mật, và các profile đa agent, xem:
- Sandboxing — tài liệu tham khảo sandbox đầy đủ
- OpenShell — truy cập shell tương tác vào các container sandbox
- Multi-Agent Sandbox and Tools — ghi đè theo agent
Kích hoạt nhanh
Khắc phục sự cố
Thiếu image hoặc container sandbox không khởi động
Thiếu image hoặc container sandbox không khởi động
Build image sandbox với
scripts/sandbox-setup.sh
hoặc đặt agents.defaults.sandbox.docker.image thành image tùy chỉnh của bạn.
Các container được tạo tự động theo phiên khi cần.Lỗi quyền trong sandbox
Lỗi quyền trong sandbox
Đặt
docker.user thành một UID:GID khớp với quyền sở hữu workspace được mount của bạn,
hoặc chown thư mục workspace.Công cụ tùy chỉnh không tìm thấy trong sandbox
Công cụ tùy chỉnh không tìm thấy trong sandbox
OpenClaw chạy các lệnh với
sh -lc (shell đăng nhập), cái mà nguồn
/etc/profile và có thể đặt lại PATH. Đặt docker.env.PATH để thêm vào trước các đường dẫn công cụ tùy chỉnh của bạn, hoặc thêm một script dưới /etc/profile.d/ trong Dockerfile của bạn.Bị OOM-killed trong quá trình build image (exit 137)
Bị OOM-killed trong quá trình build image (exit 137)
VM cần ít nhất 2 GB RAM. Sử dụng một lớp máy lớn hơn và thử lại.
Không được ủy quyền hoặc yêu cầu ghép đôi trong Control UI
Không được ủy quyền hoặc yêu cầu ghép đôi trong Control UI
Mục tiêu gateway hiển thị ws://172.x.x.x hoặc lỗi ghép đôi từ Docker CLI
Mục tiêu gateway hiển thị ws://172.x.x.x hoặc lỗi ghép đôi từ Docker CLI
Đặt lại chế độ và bind của gateway: