guide docker deployment security

Chạy OpenClaw Trong Docker: Hướng Dẫn Triển Khai Từng Bước

OpenClaws.io Team

OpenClaws.io Team

@openclaws

March 6, 2026

6 phút đọc

Chạy OpenClaw Trong Docker: Hướng Dẫn Triển Khai Từng Bước

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. 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. 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. 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:

bash
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
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:

bash
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:

bash
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:

bash
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:

yaml
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:

bash
ANTHROPIC_API_KEY=sk-ant-xxxxx
OPENAI_API_KEY=sk-xxxxx

Biến Môi Trường

BiếnBắt buộcMô tả
ANTHROPIC_API_KEYCó*API key Claude
OPENAI_API_KEYKhôngAPI key GPT (nếu dùng OpenAI)
OPENCLAW_PORTKhôngCổng Web UI (mặc định: 3000)
OPENCLAW_HOMEKhôngThư mục dữ liệu bên trong container
TZKhôngMú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

bash
# 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:

yaml
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ó:

yaml
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ể:

yaml
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:

bash
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ứcdocker-compose.yml trong repository.

Theo dõi tin mới

Nhận thông báo về tính năng mới và tích hợp. Không spam, hủy đăng ký bất cứ lúc nào.