Tại Sao Docker?
Chạy OpenClaw trong Docker mang lại ba lợi thế chính so với cài đặt trực tiếp:
- 1.Cách ly bảo mật: Tác tử chạy bên trong container với quyền truy cập hạn chế vào hệ thống chủ. Nếu một skill độc hại hoặc prompt injection cố gắng truy cập tệp của bạn, ranh giới container hạn chế phạm vi ảnh hưởng.
- 2.Tính tái tạo: Cùng một Docker image chạy giống hệt nhau trên bất kỳ máy nào — laptop, VPS, hay Raspberry Pi của bạn.
- 3.Dọn dẹp dễ dàng: Muốn bắt đầu lại? Xóa container và tạo mới. Không có tệp thừa, không có cài đặt Node.js bị hỏng.
Yêu Cầu Tiên Quyết
- •Docker Desktop (macOS/Windows) hoặc Docker Engine (Linux)
- •Docker Compose v2 (đi kèm với Docker Desktop)
- •Ít nhất 2 GB RAM khả dụng cho container
- •Một API key AI (Anthropic, OpenAI, hoặc nhà cung cấp được hỗ trợ khác)
Bắt Đầu Nhanh
Lựa Chọn A: Docker Compose Chính Thức (Được Đề Xuất)
Clone repository OpenClaw và sử dụng thiết lập Docker tích hợp:
git clone https://github.com/openclaw/openclaw.git
cd openclaw
Chạy script thiết lập, tạo các thư mục và cấu hình cần thiết:
bash docker-setup.sh
- •
~/.openclaw/— cấu hình, SOUL.md, API keys - •
~/openclaw/workspace/— tệp mà tác tử có thể truy cập
Chạy trình hướng dẫn khởi tạo bên trong container:
docker compose run --rm openclaw-cli onboard
Làm theo các bước để thiết lập API key và kết nối nền tảng chat. Sau đó khởi động gateway:
docker compose up -d openclaw-gateway
Tác tử của bạn giờ đang chạy trong nền.
Lựa Chọn B: Image Dựng Sẵn
Nếu bạn không muốn clone repository, hãy sử dụng image dựng sẵn chính thức:
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
Tài Liệu Tham Khảo Docker Compose
Đây là docker-compose.yml được chú thích cho sử dụng production:
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"
Tạo tệp .env trong cùng thư mục với API keys:
ANTHROPIC_API_KEY=sk-ant-xxxxx
OPENAI_API_KEY=sk-xxxxx
Biến Môi Trường
| Biến | Bắt buộc | Mô tả |
|---|---|---|
ANTHROPIC_API_KEY | Có* | API key Claude |
OPENAI_API_KEY | Không | API key GPT (nếu dùng OpenAI) |
OPENCLAW_PORT | Không | Cổng Web UI (mặc định: 3000) |
OPENCLAW_HOME | Không | Thư mục dữ liệu bên trong container |
TZ | Không | Múi giờ cho tác vụ theo lịch |
*Cần ít nhất một API key nhà cung cấp AI.
Quản Lý Container
# Xem nhật ký
docker logs -f openclaw
# Dừng tác tử
docker compose stop
# Khởi động tác tử
docker compose up -d
# Khởi động lại sau khi thay đổi cấu hình
docker compose restart
# Cập nhật lên phiên bản mới nhất
docker compose pull
docker compose up -d
# Vào shell container
docker exec -it openclaw bash
# Chạy lệnh CLI bên trong container
docker exec openclaw openclaw skill list
docker exec openclaw openclaw status
Tăng Cường Bảo Mật
Giới hạn quyền truy cập hệ thống tệp
Chỉ mount các thư mục mà tác tử thực sự cần. Tránh mount toàn bộ thư mục home:
volumes:
- ~/.openclaw:/root/.openclaw:rw # Config (đọc-ghi)
- ~/documents:/root/docs:ro # Tài liệu (chỉ đọc)
Cách ly mạng
Nếu tác tử không cần truy cập dịch vụ mạng cục bộ, hạn chế mạng của nó:
networks:
openclaw-net:
driver: bridge
internal: false # Đặt true để chặn mọi truy cập bên ngoài
Hệ thống tệp gốc chỉ đọc
Để bảo mật tối đa, đặt hệ thống tệp gốc ở chế độ chỉ đọc và chỉ cho phép ghi vào đường dẫn cụ thể:
read_only: true
tmpfs:
- /tmp
- /run
Cập Nhật
OpenClaw phát hành thường xuyên. Để cập nhật triển khai Docker:
docker compose pull # Kéo image mới nhất
docker compose up -d # Tạo lại container với image mới
docker image prune -f # Dọn dẹp image cũ
Cấu hình và dữ liệu của bạn được giữ lại trong các volume đã mount, nên việc cập nhật không phá hủy dữ liệu.
Xử Lý Sự Cố
Container bị crash ngay lập tức: Kiểm tra nhật ký với docker logs openclaw. Nguyên nhân phổ biến: thiếu API keys, không đủ bộ nhớ, hoặc xung đột cổng.
Mã QR WhatsApp không hiển thị: Chạy trình khởi tạo ở chế độ tương tác: docker compose run --rm openclaw-cli onboard. Mã QR cần terminal hỗ trợ hiển thị.
Lỗi quyền trên volume đã mount: Đảm bảo thư mục trên máy chủ tồn tại và thuộc sở hữu của người dùng: mkdir -p ~/.openclaw ~/openclaw/workspace.
Sử dụng bộ nhớ cao: Đặt mem_limit: 2g trong docker-compose.yml để ngăn container tiêu thụ quá nhiều RAM.
Để biết thêm chi tiết, xem tài liệu Docker chính thức và docker-compose.yml trong repository.