close

Cách thiết lập Docker sandbox cho Hermes Agent an toàn A-Z

Tác giả: Đông Tùng Ngày đăng: 25/09/2026 Chuyên mục: Hermes Agent
Disclosure
Website Tino blog được cung cấp bởi Tino Group. Truy cập và sử dụng website đồng nghĩa với việc bạn đồng ý với các điều khoản và điều kiện trong chính sách bảo mật - điều khoản sử dụng nội dung. Tino Group có thể thay đổi điều khoản sử dụng bất cứ lúc nào. Việc bạn tiếp tục sử dụng Tino blog sau khi thay đổi có nghĩa là bạn chấp nhận những thay đổi đó.
Why Trust Us
Các bài viết với hàm lượng tri thức cao tại Tino blog được tạo ra bởi các chuyên viên Marketing vững chuyên môn và được kiểm duyệt nghiêm túc theo chính sách biên tập bởi đội ngũ biên tập viên dày dặn kinh nghiệm. Mọi nỗ lực của chúng tôi đều hướng đến mong muốn mang đến cho cộng đồng nguồn thông tin chất lượng, chính xác, khách quan, đồng thời tuân thủ các tiêu chuẩn cao nhất trong báo cáo và xuất bản.

Để chạy lệnh của Hermes Agent trong Docker sandbox, cài Docker Engine trên VPS, mở ~/.hermes/config.yaml, đặt terminal.backend: docker kèm giới hạn CPU, RAM, không chuyển biến môi trường và không mount thư mục host, rồi khởi động lại Hermes. Kiểm tra bằng docker ps: thấy container tên hermes-… là sandbox đang hoạt động.

Một AI agent như Hermes Agent có khả năng tự chạy lệnh, đọc file, gọi API và cài đặt phần mềm thay bạn. Chính khả năng đó cũng là con dao hai lưỡi nếu để agent thao tác trực tiếp trên máy chủ thật. Docker Sandbox là lớp cách ly giúp lệnh của Hermes Agent chạy trong một môi trường tách biệt, giới hạn quyền và tài nguyên, thay vì chạm trực tiếp vào hệ điều hành chính. Bài thuộc nhóm hướng dẫn cài đặt và vận hành Hermes Agent trên VPS.

Docker Sandbox trong Hermes Agent là gì?

Docker Sandbox trong Hermes Agent là cách dùng Docker làm terminal backend: lệnh terminal, thao tác file và execute_code của agent chạy bên trong container thay vì trên máy chạy Hermes. Hermes Agent hỗ trợ nhiều terminal backend, tức môi trường mà các câu lệnh do agent yêu cầu được thực thi (theo tài liệu Configuration):

BackendLệnh chạy ở đâu?Mức cô lập
localTrực tiếp trên máy chạy HermesKhông cô lập
dockerBên trong Docker containerCao
sshMáy chủ từ xaTách khỏi máy chạy Agent
modalCloud sandboxCao
daytonaCloud workspaceCao
vercel_sandboxVercel SandboxCao
singularityContainer Singularity/Apptainer (cài thêm plugin)Cao

Cập nhật 10/2026: tài liệu Hermes hiện liệt kê sáu backend dựng sẵn, gồm thêm vercel_sandbox; Singularity/Apptainer chuyển thành plugin chính thức.

Xem thêm cách cách ly agent ở mức VPS: Hướng dẫn cách ly sandbox cho AI Agent trên VPS.

Tại sao nên chạy Hermes Agent trong Docker Sandbox?

Chạy Hermes Agent trong Docker Sandbox giới hạn phạm vi một lệnh sai có thể gây hại: lệnh chỉ thấy file trong container, không nhận API key của host nếu bạn không chuyển vào, và bị giới hạn CPU, RAM, số tiến trình.

Một Agent được cấp quyền Terminal có thể cài package, tạo file, sửa source code, chạy script hoặc gọi các công cụ dòng lệnh.

Docker Sandbox giúp giảm một số rủi ro quan trọng:

  • Hạn chế câu lệnh AI tác động trực tiếp lên hệ điều hành host.
  • Hạn chế phạm vi thư mục Agent có thể truy cập.
  • Tránh đưa toàn bộ biến môi trường và credential của host vào môi trường chạy lệnh.
  • Giới hạn CPU, RAM, dung lượng và số tiến trình.
  • Có thể tạo môi trường riêng cho từng phiên làm việc.
  • Có thể ngắt Internet đối với những tác vụ không cần truy cập mạng.
  • Giảm ảnh hưởng của một lệnh sai hoặc script không đáng tin cậy.
Tại sao nên chạy Hermes Agent trong Docker Sandbox

Hermes Agent áp dụng nhiều lớp hardening khi sử dụng Docker backend: bỏ toàn bộ Linux capabilities rồi chỉ thêm lại DAC_OVERRIDE, CHOWN, FOWNER, bật no-new-privileges, giới hạn 256 tiến trình và dùng tmpfs có giới hạn dung lượng cho /tmp, /var/tmp, /run (tài liệu Docker Backend).

Cần chuẩn bị gì trước khi thiết lập?

Trước khi thiết lập Docker Sandbox, VPS cần có Hermes Agent đã cài, Docker Engine đang chạy, tài khoản chạy Hermes có quyền dùng Docker và quyền sửa file cấu hình ~/.hermes/config.yaml. Nếu chưa cài Hermes, làm theo hướng dẫn cài Hermes Agent trên VPS trước.

  • Hermes Agent đã được cài đặt.
  • Docker Engine hoặc Docker Desktop đang hoạt động.
  • Quyền sử dụng Docker.
  • Quyền chỉnh sửa ~/.hermes/config.yaml.
  • Nên cập nhật Hermes Agent lên phiên bản mới trước khi cấu hình (hermes update; bản hiện hành v0.22.5 (23/10/2026)).

Cách thiết lập Docker Sandbox cho Hermes Agent

Thiết lập Docker Sandbox cho Hermes Agent gồm hai phần: cài Docker Engine trên VPS (4 bước) và cấu hình terminal backend trong Hermes (7 bước). Phần cấu hình chỉ sửa file config.yaml, kéo image và khởi động lại Hermes; không cần cài lại agent.

Cài Docker trên VPS

Giả sử VPS đang sử dụng Ubuntu và đã cài Hermes Agent. Các lệnh dưới đây theo hướng dẫn cài Docker Engine trên Ubuntu.

Bước 1: Cập nhật hệ thống

SSH vào VPS rồi chạy:

sudo apt update
sudo apt install -y ca-certificates curl

Bước 2: Thêm repository Docker

Tạo thư mục lưu khóa:

sudo install -m 0755 -d /etc/apt/keyrings
Cập nhật hệ thống và tạo thư mục /etc/apt/keyrings để thêm repository Docker

Tải khóa Docker:

sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

Thêm repository:

sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

Lệnh tee cần sudo khi bạn đăng nhập bằng tài khoản thường; ảnh chụp chạy bằng root nên không có sudo.

Cập nhật lại:

sudo apt update
Tạo file docker.sources và chạy apt update thấy repository download.docker.com

Bước 3: Cài Docker Engine

Chạy:

sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Bật Docker tự khởi động cùng VPS:

sudo systemctl enable --now docker

Bước 4: Kiểm tra Docker

Kiểm tra phiên bản:

docker --version
Cài xong Docker Engine, lệnh docker --version báo Docker version 29.8.1

Chạy thử container:

sudo docker run --rm hello-world

Nếu xuất hiện:

Hello from Docker!

Docker đã hoạt động bình thường.

Container hello-world in Hello from Docker, Docker hoạt động bình thường

Nếu Hermes Agent chạy bằng tài khoản Linux thông thường, thêm tài khoản hiện tại vào nhóm Docker:

sudo usermod -aG docker $USER

Sau đó đăng xuất SSH và đăng nhập lại.

Lưu ý an toàn: theo tài liệu Docker, nhóm docker có quyền tương đương root trên máy. Tài khoản chạy Hermes nằm trong nhóm này nghĩa là chính tiến trình Hermes (không phải lệnh trong sandbox) có thể điều khiển Docker; đó là lý do không bao giờ mount Docker socket vào container.

Kiểm tra:

docker ps

Nếu lệnh chạy mà không báo lỗi quyền truy cập, bạn có thể chuyển sang phần cấu hình Sandbox.

Thiết lập Docker Sandbox cho Hermes Agent

Bước 1: Mở file cấu hình Hermes Agent

Chạy:

nano ~/.hermes/config.yaml

Tìm phần:

terminal:

Nếu chưa có, thêm phần cấu hình vào cuối file (bước 2).

Bước 2: Chuyển Terminal Backend sang Docker

Thêm hoặc chỉnh thành:

terminal:
  backend: docker
  docker_image: "nikolaik/python-nodejs:python3.11-nodejs20"

Trong đó: backend: docker giúp các công cụ thực thi của Hermes Agent chạy bên trong Docker Sandbox thay vì chạy trực tiếp trên VPS.

Cập nhật 10/2026: nếu bỏ trống docker_image, Hermes dùng image mặc định nousresearch/hermes-sandbox:desktop (có sẵn môi trường màn hình cho công cụ duyệt web và computer use). Image nikolaik/python-nodejs trong bài vẫn dùng được cho việc chạy lệnh shell. Đổi image thì container cũ sẽ được tạo lại ở lần gọi lệnh kế tiếp.

Bước 3: Thêm giới hạn an toàn

Nên sử dụng cấu hình:

terminal:
  backend: docker
  docker_image: "nikolaik/python-nodejs:python3.11-nodejs20"
  docker_forward_env: []
  docker_mount_cwd_to_workspace: false
  docker_network: true
  container_cpu: 1
  container_memory: 2048
  container_disk: 10240
  container_persistent: false

Ý nghĩa chính:

  • docker_forward_env: []: không chuyển API key từ VPS vào Sandbox.
  • docker_mount_cwd_to_workspace: false: không tự chia sẻ thư mục hiện tại của VPS.
  • docker_network: true: container vẫn có Internet; đặt false để chạy với --network=none khi tác vụ không cần mạng.
  • container_cpu: 1: giới hạn 1 CPU.
  • container_memory: 2048: giới hạn 2 GB RAM.
  • container_disk: 10240: giới hạn khoảng 10 GB dung lượng; tài liệu ghi chỉ có hiệu lực khi Docker dùng overlay2 trên XFS có pquota.
  • container_persistent: false: mỗi phiên chat có container riêng, xoá khi phiên đóng hoặc rảnh quá lifetime_seconds; phù hợp hơn cho Sandbox.

Nếu không khai báo, mặc định là 1 CPU, 5120 MB RAM và 51200 MB đĩa (tài liệu Security); khối cấu hình trên hạ RAM và đĩa cho VPS nhỏ.

Mục terminal trong ~/.hermes/config.yaml với backend docker, docker_image và các khoá container_cpu, container_memory, container_disk, container_persistent

Ảnh chụp khối terminal trong config.yaml trước khi chỉnh, với container_memory 20480 và container_persistent true; sau khi sửa theo khối lệnh ở trên, các giá trị sẽ là 2048 và false.

Khác biệt giữa hai giá trị của container_persistent theo tài liệu Docker Backend:

container_persistent true: một container hermes chạy lâu, mọi phiên Telegram, CLI, /new và subagent dùng chung; false: mỗi phiên một container riêng, subagent dùng chung container của phiên cha

Bước 4: Lưu cấu hình

Trong Nano, nhấn Ctrl + O → Enter để lưu, sau đó nhấn Ctrl + X để thoát.

Bước 5: Tải Docker image

Chạy:

docker pull nikolaik/python-nodejs:python3.11-nodejs20

Kiểm tra:

docker images

Nếu image xuất hiện trong danh sách, Docker Sandbox đã có môi trường để khởi chạy.

Kéo image nikolaik/python-nodejs:python3.11-nodejs20 và kiểm tra bằng docker images

Bước 6: Khởi động lại Hermes Agent

Sau khi đổi cấu hình, cần khởi động lại tiến trình Hermes Agent đang chạy. Cách restart phụ thuộc vào phương thức bạn đang dùng để vận hành Hermes.

  • Nếu đang chạy Hermes trực tiếp trong Terminal, hãy thoát phiên hiện tại bằng /quit rồi chạy lại lệnh hermes.
  • Nếu gateway chạy nền (dịch vụ systemd), chạy hermes gateway restart.

Sau khi Hermes chạy lại, Docker backend sẽ được sử dụng cho các công cụ thực thi tương thích. Các cách khởi động lại khác: cách khởi động lại Hermes Agent.

Bước 7: Kiểm tra Docker Sandbox

Yêu cầu Hermes Agent chạy một lệnh Terminal đơn giản, chẳng hạn:

Hãy chạy lệnh pwd và cho tôi biết thư mục hiện tại.
Hermes Agent chạy lệnh pwd trong sandbox và trả lời thư mục hiện tại là /root

Sau đó thoát ra và chạy:

docker ps

Nếu container của Hermes xuất hiện, Docker Sandbox đang hoạt động.

docker ps hiện container hermes chạy image nikolaik/python-nodejs với lệnh sleep infinity

Bạn cũng có thể yêu cầu Hermes chạy:

cat /etc/os-release

hoặc:

ls /

Kết quả lúc này đến từ môi trường container thay vì trực tiếp từ hệ điều hành VPS.

Như vậy, với cấu hình trên, Hermes Agent đã có môi trường thực thi riêng, đồng thời hạn chế quyền truy cập file, API key và tài nguyên của VPS.

Docker Sandbox có đủ để bảo vệ VPS không?

Không. Docker Sandbox là một lớp bảo vệ quan trọng nhưng không phải lớp duy nhất: container vẫn dùng chung kernel với VPS, thư mục bạn mount vào vẫn ghi thẳng xuống host, và tiến trình Hermes cùng file .env vẫn nằm ngoài container.

Mô hình bảo mật của Hermes Agent sử dụng nhiều lớp, bao gồm kiểm soát người dùng, kiểm tra thao tác nguy hiểm, giới hạn ghi file, container isolation, bảo vệ credential MCP và cô lập session.

Một điểm cần biết: khi dùng backend docker, Hermes bỏ qua bước hỏi duyệt lệnh nguy hiểm vì coi container là ranh giới an toàn (tài liệu Security). Lệnh xoá dữ liệu trong thư mục bạn mount vào sẽ chạy ngay mà không hỏi, nên càng cần giữ docker_volumes tối thiểu.

Một cấu hình an toàn nên kết hợp:

Docker Sandbox + giới hạn volume + hạn chế credential + giới hạn tài nguyên + kiểm soát network + cập nhật Hermes Agent thường xuyên.

Ngoài ra, Docker Terminal Backend không đồng nghĩa toàn bộ tiến trình Hermes Agent đều nằm trong container. Muốn đóng gói cả agent, xem cách chạy image chính thức trong bài cài đặt Hermes Agent trên Docker. Với môi trường doanh nghiệp hoặc dữ liệu nhạy cảm, nên kết hợp thêm cách ly mạng như bảo mật VPS chạy AI Agent bằng Tailscale hoặc sandbox chuyên dụng có chính sách filesystem, network và process chặt chẽ hơn.

Một số lưu ý khi sử dụng Docker Sandbox với Hermes Agent

Khi dùng Docker Sandbox với Hermes Agent, ba nguyên tắc quan trọng là không mount nhiều hơn mức cần, không chuyển credential khi chưa cần và không đưa Docker socket vào container. Danh sách dưới đây gom các lưu ý cụ thể.

  • Luôn cập nhật Hermes Agent trước khi triển khai production.
  • Không mount toàn bộ VPS vào container.
  • Ưu tiên volume read-only (thêm :ro trong docker_volumes) nếu Agent chỉ cần đọc.
  • Giữ docker_forward_env rỗng nếu chưa cần credential.
  • Không đưa Docker socket vào Sandbox.
  • Giới hạn CPU và RAM để tránh tác vụ Agent chiếm toàn bộ tài nguyên VPS.
  • Dùng container_persistent: false cho các tác vụ thử nghiệm hoặc code chưa đáng tin cậy.
  • Tắt network bằng docker_network: false khi workload không cần Internet.
  • Không thêm cờ --privileged, --network=host qua docker_extra_args: tài liệu cảnh báo các cờ xung đột sẽ làm yếu lớp cách ly.
  • Không chạy gateway bằng tài khoản root khi đưa vào sử dụng thật (khuyến nghị trong tài liệu Security); ảnh chụp trong bài dùng root chỉ để thử nghiệm.
  • Tách môi trường production khỏi môi trường thử nghiệm.
  • Không xem Docker là lớp bảo mật duy nhất.
Một số lưu ý khi sử dụng Docker Sandbox với Hermes Agent

Khi nào chưa cần Docker Sandbox cho Hermes Agent?

Chưa cần Docker Sandbox khi Hermes Agent chỉ dùng để trò chuyện, tra cứu, không bật công cụ terminal, hoặc khi bạn cần agent quản trị chính VPS như cài gói hệ thống, sửa cấu hình dịch vụ. Trường hợp sau, lệnh trong container không thấy dịch vụ của host nên kết quả sẽ sai lệch.

  • VPS chỉ 1GB RAM: Docker daemon cộng container sandbox dễ làm hết bộ nhớ.
  • Agent chỉ chat: tắt công cụ terminal bằng hermes tools đơn giản hơn dựng sandbox.
  • Cần quản trị host: dùng backend local kèm phê duyệt lệnh nguy hiểm, hoặc backend ssh tới một máy riêng.

Chạy Hermes Agent trên VPS có quyền root

Docker Sandbox cần VPS có quyền root để cài Docker Engine và chỉnh cấu hình. Nếu không muốn cài Hermes từ đầu, bạn có thể dùng VPS cài sẵn Hermes Agent rồi bật Docker backend theo các bước trên. Các khoá giới hạn CPU, RAM, mạng trong config.yaml áp dụng như nhau trên VPS tự cài và VPS cài sẵn.

Muốn chạy Hermes Agent 24/7 mà không tự cài? VPS Hermes Agent của Tino cài sẵn Hermes Agent trên VPS NVMe đặt tại Việt Nam; bạn vẫn có quyền root để cấu hình. Xem cấu hình và giá trên trang sản phẩm. Nếu dùng trong 30 ngày mà không hài lòng, bạn được hoàn 100% (xem điều kiện).

Kết luận

Quyền chạy lệnh làm Hermes Agent linh hoạt nhưng cũng đòi hỏi kiểm soát chặt. Docker Sandbox là cách tương đối đơn giản để tách lệnh của agent khỏi hệ điều hành host, giới hạn tài nguyên và kiểm soát dữ liệu mà môi trường thực thi được tiếp cận.

Cách triển khai này giúp Hermes Agent giữ được khả năng tự động hóa, đồng thời giảm đáng kể rủi ro khi AI phải chạy code hoặc thực hiện các tác vụ trên VPS.

Các bài viết liên quan:

Những câu hỏi thường gặp

Hermes Agent có bắt buộc phải dùng Docker Sandbox không?

Không. Backend mặc định là local, chạy trực tiếp trên máy cài Hermes. Docker Sandbox phù hợp hơn khi Agent được phép chạy lệnh, thực thi code hoặc xử lý nội dung không hoàn toàn đáng tin cậy, ví dụ file người khác gửi qua Telegram.

Docker Sandbox có làm Hermes Agent chậm hơn không?

Có thêm một lượng overhead nhỏ, chủ yếu ở lần gọi lệnh đầu tiên khi Hermes khởi tạo container. Các lệnh sau chạy qua docker exec vào container có sẵn nên chênh lệch thường không đáng kể. Với container_persistent: false, mỗi phiên mới lại mất thêm thời gian tạo container.

Đông Tùng

Senior Technology Writer

Là cử nhân Quản trị kinh doanh của Trường Đại học Tài chính - Marketing, Tùng bắt đầu làm việc tại Tino Group từ năm 2021 ở vị trí Content Marketing để thỏa mãn niềm đam mê viết lách của bản thân. Sở hữu khả năng sáng tạo đặc biệt, anh cùng đội ngũ của mình đã tạo nên những chiến dịch quảng cáo độc đáo cùng vô số bài viết hữu ích về nhiều chủ đề khác nhau. Sự tỉ mỉ, kiên trì và tinh thần sáng tạo của Tùng đã góp phần lớn vào thành công của Tino Group trong lĩnh vực marketing trực tuyến.

Xem thêm bài viết

Bài viết liên quan

Xem nhiều