Docker là tùy chọn. Chỉ dùng nếu bạn muốn một Gateway được container hóa hoặc muốn xác thực luồng Docker.Documentation Index
Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Docker có phù hợp với tôi không?
- Có: bạn muốn một môi trường Gateway biệt lập, dùng xong bỏ, hoặc muốn chạy OpenClaw trên một host không có cài đặt cục bộ.
- Không: 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 dùng luồng cài đặt thông thường.
- Lưu ý về sandboxing: backend sandbox mặc định dùng Docker khi sandboxing được bật, nhưng sandboxing mặc định tắt và không yêu cầu toàn bộ Gateway chạy trong Docker. Các backend sandbox SSH và OpenShell cũng có sẵn. Xem Sandboxing.
Điều kiện tiên quyết
- 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 host 1 GB với mã thoát 137) - Đủ dung lượng đĩa cho image và log
- Nếu chạy trên VPS/host công khai, hãy xem lại
Gia cố bảo mật cho việc phơi bày mạng,
đặc biệt là chính sách firewall Docker
DOCKER-USER.
Gateway được container hóa
Build image
main, latest, <version> (ví dụ 2026.2.26).Hoàn tất onboarding
- hỏi provider API key
- tạo Gateway token và ghi vào
.env - tạo thư mục khóa bí mật auth-profile
- khởi động Gateway qua Docker Compose
openclaw-gateway. openclaw-cli dành cho các lệnh bạn chạy sau khi
container Gateway đã tồn tại.Mở Control UI
http://127.0.0.1:18789/ trong trình duyệt và dán shared secret đã cấu hình
vào Settings. Script thiết lập mặc định ghi token vào .env; nếu bạn chuyển
cấu hình container sang xác thực bằng mật khẩu, hãy dùng mật khẩu đó thay thế.Cần lại URL?Luồng thủ công
Nếu bạn muốn tự chạy từng bước thay vì dùng script thiết lập:docker compose từ thư mục gốc repo. Nếu bạn đã bật OPENCLAW_EXTRA_MOUNTS
hoặc OPENCLAW_HOME_VOLUME, script thiết lập ghi docker-compose.extra.yml;
hãy bao gồm nó bằng -f docker-compose.yml -f docker-compose.extra.yml.openclaw-cli chia sẻ namespace mạng của openclaw-gateway, nó là công cụ
sau khi khởi động. Trước docker compose up -d openclaw-gateway, hãy chạy onboarding
và các lần ghi cấu hình lúc thiết lập qua openclaw-gateway với
--no-deps --entrypoint node.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 | Dùng image từ xa thay vì build cục bộ |
OPENCLAW_DOCKER_APT_PACKAGES | Cài đặt thêm gói apt trong khi build (phân tách bằng khoảng trắng) |
OPENCLAW_EXTENSIONS | Bao gồm các trình trợ giúp Plugin tích hợp đã chọn lúc build |
OPENCLAW_EXTRA_MOUNTS | Các bind mount host bổ sung (source:target[:opts] phân tách bằng dấu phẩy) |
OPENCLAW_HOME_VOLUME | Duy trì /home/node trong một named Docker volume |
OPENCLAW_SANDBOX | Bật sandbox bootstrap (1, true, yes, on) |
OPENCLAW_SKIP_ONBOARDING | Bỏ qua bước onboarding tương tác (1, true, yes, on) |
OPENCLAW_DOCKER_SOCKET | Ghi đè đường dẫn Docker socket |
OPENCLAW_DISABLE_BONJOUR | Tắt quảng bá Bonjour/mDNS (mặc định là 1 cho Docker) |
OPENCLAW_DISABLE_BUNDLED_SOURCE_OVERLAYS | Tắt các overlay bind-mount nguồn Plugin tích hợp |
OTEL_EXPORTER_OTLP_ENDPOINT | Endpoint collector OTLP/HTTP dùng chung cho xuất OpenTelemetry |
OTEL_EXPORTER_OTLP_*_ENDPOINT | Các endpoint OTLP theo từng tín hiệu cho trace, metric hoặc log |
OTEL_EXPORTER_OTLP_PROTOCOL | Ghi đè giao thức OTLP. Hiện chỉ hỗ trợ http/protobuf |
OTEL_SERVICE_NAME | Tên dịch vụ dùng cho tài nguyên OpenTelemetry |
OTEL_SEMCONV_STABILITY_OPT_IN | Bật các thuộc tính ngữ nghĩa GenAI thử nghiệm mới nhất |
OPENCLAW_OTEL_PRELOADED | Bỏ qua việc khởi động SDK OpenTelemetry thứ hai khi đã preload một SDK |
OPENCLAW_EXTRA_MOUNTS=/path/to/fork/extensions/synology-chat:/app/extensions/synology-chat:ro.
Thư mục nguồn đã mount đó ghi đè bundle
/app/dist/extensions/synology-chat đã biên dịch tương ứng cho cùng id Plugin.
Khả năng quan sát
Xuất OpenTelemetry đi ra từ container Gateway đến collector OTLP của bạn. Nó không yêu cầu một cổng Docker được publish. Nếu bạn build image cục bộ và muốn exporter OpenTelemetry tích hợp có sẵn bên trong image, hãy bao gồm các phụ thuộc runtime của nó:@openclaw/diagnostics-otel chính thức từ ClawHub trong
các bản cài Docker đóng gói trước khi bật xuất. Image tự build từ nguồn tùy chỉnh
vẫn có thể bao gồm nguồn Plugin cục bộ với
OPENCLAW_EXTENSIONS=diagnostics-otel. Để bật xuất, hãy cho phép và bật
Plugin diagnostics-otel trong cấu hình, sau đó đặt
diagnostics.otel.enabled=true hoặc dùng ví dụ cấu hình trong xuất OpenTelemetry
. Header xác thực collector được cấu hình qua
diagnostics.otel.headers, không phải qua biến môi trường Docker.
Metric Prometheus dùng cổng Gateway đã được publish sẵn. Cài đặt
clawhub:@openclaw/diagnostics-prometheus, bật Plugin
diagnostics-prometheus, rồi scrape:
/metrics công khai riêng hoặc đường dẫn reverse-proxy không xác thực. Xem
Metric Prometheus.
Kiểm tra sức khỏe
Các endpoint probe container (không yêu cầu xác thực):HEALTHCHECK tích hợp 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 sức khỏe sâu có xác thực:
LAN so với vòng lặp cục bộ
scripts/docker/setup.sh mặc định OPENCLAW_GATEWAY_BIND=lan để truy cập từ host tới
http://127.0.0.1:18789 hoạt động với việc publish cổng Docker.
lan(mặc định): trình duyệt host và CLI host có thể truy cập cổng Gateway đã publish.loopback: chỉ các process bên trong namespace mạng của container mới có thể truy cập trực tiếp Gateway.
gateway.bind (lan / loopback / custom /
tailnet / auto), không dùng alias host như 0.0.0.0 hoặc 127.0.0.1.Provider cục bộ trên host
Khi OpenClaw chạy trong Docker,127.0.0.1 bên trong container là chính container,
không phải máy host của bạn. Dùng host.docker.internal cho các provider AI
chạy trên host:
| Provider | URL mặc định trên host | URL thiết lập Docker |
|---|---|---|
| LM Studio | http://127.0.0.1:1234 | http://host.docker.internal:1234 |
| Ollama | http://127.0.0.1:11434 | http://host.docker.internal:11434 |
docker-compose.yml ánh xạ host.docker.internal tới
Gateway host của Docker cho Linux Docker Engine. Docker Desktop đã cung cấp
cùng hostname đó trên macOS và Windows.
Các dịch vụ host cũng phải lắng nghe trên một địa chỉ Docker có thể truy cập:
docker run riêng, hãy tự thêm cùng ánh xạ
host đó, ví dụ
--add-host=host.docker.internal:host-gateway.
Bonjour / mDNS
Mạng bridge Docker thường không chuyển tiếp multicast Bonjour/mDNS (224.0.0.251:5353) một cách đáng tin cậy. Vì vậy thiết lập Compose tích hợp mặc định
OPENCLAW_DISABLE_BONJOUR=1 để Gateway không rơi vào crash-loop hoặc liên tục
khởi động lại việc quảng bá khi bridge làm rơi lưu lượng multicast.
Dùng URL Gateway đã publish, Tailscale, hoặc wide-area DNS-SD cho host Docker.
Chỉ đặt OPENCLAW_DISABLE_BONJOUR=0 khi chạy với host networking, macvlan,
hoặc mạng khác mà mDNS multicast được biết là hoạt động.
Để xem các điểm dễ vướng và cách khắc phục sự cố, xem Khám phá Bonjour.
Lưu trữ và duy trì dữ liệu
Docker Compose bind-mountOPENCLAW_CONFIG_DIR tới /home/node/.openclaw,
OPENCLAW_WORKSPACE_DIR tới /home/node/.openclaw/workspace, và
OPENCLAW_AUTH_PROFILE_SECRET_DIR tới /home/node/.config/openclaw, để các
đường dẫn đó vẫn tồn tại sau khi thay thế container. Khi bất kỳ biến nào chưa được đặt,
docker-compose.yml tích hợp fallback dưới ${HOME}, hoặc /tmp khi chính HOME
cũng bị thiếu. Điều đó giúp docker compose up không phát ra spec volume
có nguồn rỗng trên các môi trường tối giản.
Thư mục cấu hình đã mount đó là nơi OpenClaw lưu:
openclaw.jsoncho cấu hình hành viagents/<agentId>/agent/auth-profiles.jsoncho xác thực OAuth/API-key provider đã lưu.envcho các bí mật runtime dựa trên env nhưOPENCLAW_GATEWAY_TOKEN
OPENCLAW_CONFIG_DIR.
Các plugin có thể tải xuống đã cài đặt lưu trạng thái gói của chúng bên dưới
thư mục chính OpenClaw được gắn kết, nên bản ghi cài đặt plugin và thư mục gốc gói vẫn tồn tại sau khi thay thế container. Quá trình khởi động Gateway không tạo cây phụ thuộc cho plugin tích hợp sẵn.
Để biết đầy đủ chi tiết về tính bền vững trên các bản triển khai VM, xem
Docker VM Runtime - Nội dung nào được lưu ở đâu.
Điểm nóng tăng dung lượng đĩa: theo dõi media/, các tệp JSONL phiên,
cron/runs/*.jsonl, thư mục gốc gói plugin đã cài đặt, và nhật ký tệp luân phiên
bên dưới /tmp/openclaw/.
Trình trợ giúp shell (tùy chọn)
Để quản lý Docker hằng ngày dễ hơn, hãy cài đặtClawDock:
scripts/shell-helpers/clawdock-helpers.sh, hãy chạy lại lệnh cài đặt ở trên để tệp trợ giúp cục bộ của bạn theo dõi vị trí mới.
Sau đó dùng clawdock-start, clawdock-stop, clawdock-dashboard, v.v. Chạy
clawdock-help để xem tất cả lệnh.
Xem ClawDock để biết hướng dẫn đầy đủ về trình trợ giúp.
Bật sandbox tác tử cho Docker gateway
Bật sandbox tác tử cho Docker gateway
docker.sock sau khi các điều kiện tiên quyết của sandbox đạt yêu cầu. Nếu
không thể hoàn tất thiết lập sandbox, script đặt lại agents.defaults.sandbox.mode
về off. Các lượt chế độ mã Codex vẫn bị giới hạn trong Codex
workspace-write khi sandbox OpenClaw đang hoạt động; không gắn kết
Docker socket của máy chủ vào các container sandbox tác tử.Tự động hóa / CI (không tương tác)
Tự động hóa / CI (không tương tác)
-T:Ghi chú bảo mật mạng dùng chung
Ghi chú bảo mật mạng dùng chung
openclaw-cli dùng network_mode: "service:openclaw-gateway" để các lệnh CLI
có thể truy cập gateway qua 127.0.0.1. Hãy coi đây là một ranh giới tin cậy dùng chung.
Cấu hình compose loại bỏ NET_RAW/NET_ADMIN và bật
no-new-privileges trên cả openclaw-gateway và openclaw-cli.Lỗi DNS của Docker Desktop trong openclaw-cli
Lỗi DNS của Docker Desktop trong openclaw-cli
openclaw-cli dùng mạng chung sau khi NET_RAW bị loại bỏ, thể hiện dưới dạng
EAI_AGAIN trong các lệnh dựa trên npm như openclaw plugins install.
Giữ tệp compose mặc định đã được tăng cường bảo mật cho hoạt động gateway thông thường. Phần
ghi đè cục bộ bên dưới nới lỏng tư thế bảo mật của container CLI bằng cách
khôi phục các capability mặc định của Docker, vì vậy chỉ dùng nó cho lệnh CLI
một lần cần truy cập sổ đăng ký gói, không dùng làm lệnh gọi Compose
mặc định của bạn:openclaw-cli chạy lâu dài, hãy tạo lại nó
với cùng phần ghi đè. docker compose exec và docker exec không thể
thay đổi Linux capability trên một container đã được tạo.Quyền và EACCES
Quyền và EACCES
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 bind mount trên máy chủ thuộc sở hữu của uid 1000:blocked plugin candidate: suspicious ownership (... uid=1000, expected uid=0 or root)
theo sau là plugin present but blocked. Điều đó nghĩa là uid của tiến trình và chủ sở hữu
thư mục plugin được gắn kết không khớp. Nên chạy container với uid mặc định 1000
và sửa quyền sở hữu bind mount. Chỉ chown
/path/to/openclaw-config/npm thành root:root nếu bạn chủ ý chạy
OpenClaw dưới quyền root lâu dài.Dựng lại nhanh hơn
Dựng lại nhanh hơn
pnpm install trừ khi lockfile thay đổi:Tùy chọn container cho người dùng nâng cao
Tùy chọn container cho người dùng nâng cao
node không phải root. Để có container
đầy đủ tính năng hơn:- Duy trì
/home/node:export OPENCLAW_HOME_VOLUME="openclaw_home" - Đóng gói sẵn phụ thuộc hệ thống:
export OPENCLAW_DOCKER_APT_PACKAGES="git curl jq" - Đóng gói sẵn Playwright Chromium:
export OPENCLAW_INSTALL_BROWSER=1 - Hoặc cài đặt trình duyệt Playwright vào volume được duy trì:
- Duy trì các bản tải xuống trình duyệt: dùng
OPENCLAW_HOME_VOLUMEhoặcOPENCLAW_EXTRA_MOUNTS. OpenClaw tự động phát hiện Chromium do Playwright quản lý của Docker image trên Linux.
OpenAI Codex OAuth (Docker headless)
OpenAI Codex OAuth (Docker headless)
Siêu dữ liệu image nền
Siêu dữ liệu image nền
node:24-bookworm-slim và bao gồm tini làm tiến trình init entrypoint (PID 1) để đảm bảo các tiến trình zombie được dọn dẹp và tín hiệu được xử lý đúng trong các container chạy lâu dài. Nó xuất bản các chú thích image nền OCI, bao gồm org.opencontainers.image.base.name,
org.opencontainers.image.source, và các chú thích khác. Digest nền Node được
làm mới thông qua các PR Docker base-image của Dependabot; các bản dựng phát hành không chạy
lớp nâng cấp distro. 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 dùng chung, bao gồm đóng gói nhị phân, tính bền vững và cập nhật.Sandbox tác tử
Khiagents.defaults.sandbox được bật với backend Docker, gateway
chạy thực thi công cụ tác tử (shell, đọc/ghi tệp, v.v.) bên trong các container Docker
cô lập trong khi bản thân gateway vẫn ở trên máy chủ. Điều này tạo ra một rào chắn cứng
quanh các phiên tác tử không đáng tin cậy hoặc nhiều bên thuê mà không cần container hóa toàn bộ
gateway.
Phạm vi sandbox có thể theo tác tử (mặc định), theo phiên, hoặc dùng chung. Mỗi phạm vi
có workspace riêng được gắn kết 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à container
trình duyệt.
Để biết đầy đủ cấu hình, image, ghi chú bảo mật, và hồ sơ đa tác tử, xem:
- Sandboxing — tài liệu tham khảo đầy đủ về sandbox
- OpenShell — truy cập shell tương tác vào container sandbox
- Multi-Agent Sandbox and Tools — ghi đè theo tác tử
Bật nhanh
docker build nội tuyến.
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
scripts/sandbox-setup.sh
(checkout nguồn) hoặc lệnh docker build nội tuyến từ Sandboxing § Image và thiết lập (cài đặt npm),
hoặc đặt agents.defaults.sandbox.docker.image thành image tùy chỉnh của bạn.
Container được tự động tạo theo từng phiên khi cần.Lỗi quyền trong sandbox
Lỗi quyền trong sandbox
docker.user thành UID:GID khớp với quyền sở hữu workspace được gắn kết của bạn,
hoặc chown thư mục workspace.Không tìm thấy công cụ tùy chỉnh trong sandbox
Không tìm thấy công cụ tùy chỉnh trong sandbox
sh -lc (login shell), nguồn hóa
/etc/profile và có thể đặt lại PATH. Đặt docker.env.PATH để thêm trước
các đường dẫn công cụ tùy chỉnh, hoặc thêm script bên dưới /etc/profile.d/ trong Dockerfile của bạn.Bị OOM-killed trong khi dựng image (exit 137)
Bị OOM-killed trong khi dựng image (exit 137)
Chưa được ủy quyền hoặc cần ghép nối trong Control UI
Chưa được ủy quyền hoặc cần ghép nối trong Control UI
Đích Gateway hiển thị ws://172.x.x.x hoặc lỗi ghép nối từ Docker CLI
Đích Gateway hiển thị ws://172.x.x.x hoặc lỗi ghép nối từ Docker CLI
Liên quan
- Tổng quan cài đặt — tất cả phương thức cài đặt
- Podman — lựa chọn thay thế Podman cho Docker
- ClawDock — thiết lập cộng đồng Docker Compose
- Cập nhật — giữ OpenClaw luôn được cập nhật
- Cấu hình — cấu hình gateway sau khi cài đặt