🤖HermesBlog
Hermes 官方教程 · 第16篇2026/8/9· Easy Understand Hermes Agent

第十六篇:Docker 部署 Hermes——干净又省心

Hermes Agent 官方教程第十六篇:用 Docker 容器运行 Hermes,环境隔离、开箱即用。

这篇讲的是:如何用 Docker 把 Hermes 装进一个“小盒子”里运行,让环境干干净净、升级不丢数据。


先打个比方

想象 Hermes 是一个爱折腾的房客。直接装在你电脑上,他会到处乱放东西(依赖、缓存、配置文件),搬家时还得重新收拾。Docker 就是给他一个带锁的行李箱——所有东西都放在箱子里,箱子外干干净净。想升级?换个新箱子,把旧箱子的“数据夹层”抽出来放进去就行。


第 1 步:准备一个“数据夹层”

在电脑上建一个文件夹,专门存放 Hermes 的所有数据(配置、API 密钥、聊天记录、技能、记忆)。这个文件夹是你在箱子外唯一需要关心的东西。

mkdir -p ~/.hermes

小提醒:如果你用的是 VPS 商家自带的网页控制台(比如 Hetzner),别在那里粘贴命令——它会把 : 变成 ;@ 显示错乱,悄悄改坏你的命令。请用 SSH 连接(ssh root@你的服务器IP)操作。


第 2 步:第一次启动,跑个“初始化向导”

docker run -it --rm \
  -v ~/.hermes:/opt/data \
  nousresearch/hermes-agent setup

这会在箱子里启动一个设置向导,问你 API 密钥并保存到 ~/.hermes/.env只需要跑这一次。 建议顺手配好一个聊天平台(Telegram、Discord 等),后面网关才有地方“说话”。

小技巧:在容器里执行 hermes setup --portal 一次,刷新令牌会存进数据夹层,以后不用重复登录。


第 3 步:正式运行——网关模式

配置好后,让 Hermes 在后台常驻,充当你的聊天机器人“接线员”:

docker run -d \
  --name hermes \
  --restart unless-stopped \
  -v ~/.hermes:/opt/data \
  -p 8642:8642 \
  nousresearch/hermes-agent gateway run
  • -d:后台运行
  • --restart unless-stopped:服务器重启后自动拉起容器
  • -p 8642:8642:开放 8642 端口,供仪表盘或外部工具访问(只用聊天平台的话可去掉)

好消息:容器里的网关进程有“保姆”看着(s6-overlay)——万一崩了,几秒内自动重启,容器不会退出。想退出保姆模式?加 --no-supervise 参数。


第 4 步(可选):打开网页仪表盘

想用浏览器看状态、做管理?加一个环境变量和端口:

docker run -d \
  --name hermes \
  --restart unless-stopped \
  -v ~/.hermes:/opt/data \
  -p 8642:8642 \
  -p 9119:9119 \
  -e HERMES_DASHBOARD=1 \
  nousresearch/hermes-agent gateway run

仪表盘默认绑定 0.0.0.0(容器内所有网卡)。注意:只要绑定地址不是 127.0.0.1,就必须配置登录认证——否则仪表盘会直接拒绝启动。三种认证方式任选:

  • 用户名/密码(最简单,适合家庭内网):设 HERMES_DASHBOARD_BASIC_AUTH_USERNAMEHERMES_DASHBOARD_BASIC_AUTH_PASSWORD
  • Nous Portal OAuth(适合公网):设 HERMES_DASHBOARD_OAUTH_CLIENT_ID
  • 自建 OIDC(对接公司账号):设 HERMES_DASHBOARD_OIDC_ISSUERHERMES_DASHBOARD_OIDC_CLIENT_ID

警告:老版本有个 HERMES_DASHBOARD_INSECURE=1 的“免登录逃生门”,已被移除。别想着裸奔公网——那是被黑客盯上的最快方式。


第 5 步(可选):开放 API 服务

想让外部程序调用 Hermes 的 OpenAI 兼容接口?加这几个环境变量:

docker run -d \
  --name hermes \
  --restart unless-stopped \
  -v ~/.hermes:/opt/data \
  -p 8642:8642 \
  -e API_SERVER_ENABLED=true \
  -e API_SERVER_HOST=0.0.0.0 \
  -e API_SERVER_KEY="$(openssl rand -hex 32)" \
  -e API_SERVER_CORS_ORIGINS='*' \
  nousresearch/hermes-agent gateway run

把端口暴露到公网是危险操作——请确保你明白风险,或干脆用 Tailscale / SSH 隧道访问。


小总结

用 Docker 跑 Hermes,核心就三句话:数据放 ~/.hermes,容器随便换,升级不丢档。 网关有保姆看着,仪表盘有门锁挡着,剩下的就是享受“干净又省心”的快乐。

下篇预告: 容器跑起来了,但日志去哪了?配置怎么改?下一篇带你摸清 Hermes 的“文件地图”——第十七篇:配置与日志——一切尽在掌握

📖 官方文档

本文根据 Hermes Agent 官方文档编写,原文见:官方文档 › user-guide/docker