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. Wiki.tino.org 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.

Một AI agent như Hermes Agent có khả năng tự chạy lệnh, đọc file, gọi API và thậm chí cài đặt phần mềm thay bạn. Nhưng 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 chính là lớp cách ly giúp mọi 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. Cùng Tino tìm hiểu cách thiết lập Docker Sandbox cho Hermes Agent an toàn qua bài viết dưới đây nhé!

Docker Sandbox trong Hermes Agent là gì?

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 sẽ được thực thi. Một số lựa chọn phổ biến gồm:

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
singularityContainer Singularity/ApptainerCao
modalCloud sandboxCao
daytonaCloud workspaceCao

Xem thêm: 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?

Hermes Agent có khả năng thực hiện nhiều hành động tự động. 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?
Tại sao nên chạy Hermes Agent trong Docker Sandbox?

Hermes Agent hiện áp dụng nhiều lớp hardening khi sử dụng Docker backend, bao gồm giảm Linux capabilities, bật no-new-privileges, giới hạn số tiến trình và sử dụng các tmpfs có giới hạn dung lượng.

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

Bạn cần:

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

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

Cài Docker trên VPS

Giả sử VPS đang sử dụng Ubuntu và đã cài Hermes Agent.

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
Thêm repository Docker
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:

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

Cập nhật lại:

sudo apt update
Thêm repository Docker
Thêm repository Docker

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
Kiểm tra Docker
Kiểm tra Docker

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.

Kiểm tra Docker
Kiểm tra Docker

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.

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 sẽ 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.

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

  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.
  • 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 khi Docker storage hỗ trợ.
  • container_persistent: false: sử dụng môi trường tạm thời, phù hợp hơn cho Sandbox.
Chuyển Terminal Backend sang Docker
Chuyển Terminal Backend sang Docker

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.

Tải Docker image
Tải Docker image

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 dừng phiên hiện tại rồi chạy lại Hermes.
  • Nếu Hermes được quản lý bằng systemd, cần restart service tương ứng.

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.

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.
Kiểm tra Docker Sandbox
Kiểm tra Docker Sandbox

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.

Kiểm tra Docker Sandbox
Kiểm tra Docker Sandbox

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ó phải lớp bảo mật tuyệt đối?

Không. Docker Sandbox là một lớp bảo vệ quan trọng nhưng không nên được xem là cơ chế an toàn tuyệt đối.

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.

Docker Sandbox có phải lớp bảo mật tuyệt đối?
Docker Sandbox có phải lớp bảo mật tuyệt đối?

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. Với môi trường doanh nghiệp hoặc dữ liệu đặc biệt nhạy cảm, nên cân nhắc whole-process containerization 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

  • 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 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 khi workload không cần Internet.
  • 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
Một số lưu ý khi sử dụng Docker Sandbox với Hermes Agent

Kết luận

Khả năng chạy lệnh và thao tác trực tiếp với hệ thống giúp Hermes Agent trở thành một AI Agent rất linh hoạt, nhưng quyền thực thi càng lớn thì yêu cầu kiểm soát bảo mật càng cao. Thiết lập Docker Sandbox cho Hermes Agent là một cách tương đối đơn giản để tách hoạt động của Agent khỏi hệ điều hành host, giới hạn tài nguyên và kiểm soát những dữ liệu mà môi trường thực thi được phép tiếp cận.

Cách triển khai này vừa giúp Hermes Agent giữ được khả năng tự động hóa mạnh mẽ, vừa 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ực tiếp 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 có thể chạy trực tiếp trên máy bằng local. Tuy nhiên, 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.

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

Có thêm một lượng overhead nhỏ do containerization, nhưng với hầu hết tác vụ AI Agent thông thường, chênh lệch thường không phải vấn đề lớn. Lợi ích về khả năng cô lập thường quan trọng hơn mức overhead này.

Hermes Agent trong Docker có truy cập được file trên VPS không?

Chỉ những thư mục được chia sẻ qua volume hoặc cơ chế mount tương ứng mới nên được cấp cho container. Không nên mount toàn bộ filesystem của VPS.

Có nên cho Docker Sandbox truy cập Internet không?

Tùy tác vụ. Nếu Agent cần tải package, truy cập API hoặc sử dụng dịch vụ online, network phải hoạt động. Nếu chỉ kiểm tra code hoặc xử lý dữ liệu cục bộ, tắt network sẽ tăng khả năng cô lập.

Đô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