先講結論
- 官方映像叫 nousresearch/hermes-agent。我量到 4.51 GB,測試機上 28 秒抓完。設定、金鑰、記憶、技能全部在你掛進去的那一個資料夾裡。
- 照文件的指令常駐沒問題,放著大約佔 0.3 GB 記憶體。我把裡面的主程式強制砍掉,它 2 秒內自己重開,17 秒後恢復回應。
- 照文件加上 HERMES_DASHBOARD=1 開控制台,會連不上。它發現沒有設登入方式就拒絕啟動,要先設密碼,或是改成只聽本機。
想讓 Hermes Agent 整天開著,放在容器裡是很省事的做法。不用管它要哪一版的 Python 和 Node.js,升級是換一個映像,要搬家是帶走一個資料夾。
官方有現成的映像,文件也寫得很長。我照文件上的指令實際跑了一遍,大部分都順,只有控制台那一段照抄會卡住。
先交代測試的條件。日期是 2026 年 10 月 13 日,機器是一台全新的 Linux 測試機,2 核心、4 GB 記憶體,Docker 是 29.9.0。抓到的映像裡面是 Hermes Agent v0.21.7。文件用的資料夾是 ~/.hermes,我測試時放在另一個路徑,指令的其他部分一樣。我沒有接模型,也沒有接聊天軟體,所以這篇講的是「裝起來、開著」這一段,不包含它實際做事的表現。
還沒決定要不要用容器的話,直接安裝的過程在Hermes Agent 安裝教學。
它在容器裡的樣子
一個映像,一個資料夾。
映像是 nousresearch/hermes-agent,程式都在裡面。你的東西,包括設定檔、金鑰、記憶、技能、對話紀錄,全部放在主機上的一個資料夾,啟動時掛到容器裡的 /opt/data。
所以容器刪掉重建,資料不會不見。
抓映像
docker pull nousresearch/hermes-agent:latest
我抓到的是 4.51 GB,一共 37 層,花了 28 秒。測試機在機房裡,網路很快,這個時間不能直接套到家裡的網路。抓完之後硬碟多用了大約 4.3 GB。
它不小。文件列的內容物有 Python、Node.js、FFmpeg 和一個完整版的 Chromium 瀏覽器,還特別提到用完整版的瀏覽器讓映像變大了。瀏覽器是給它上網操作網頁用的。
官方文件列的標籤有三種:latest 和 stable 是通過發行檢查的穩定版,main 是開發中的版本,另外有指定版號的。文件說映像有 amd64 和 arm64 兩種,我測的是 amd64。
第一次啟動
官方文件的第一步是建資料夾,然後跑設定精靈:
mkdir -p ~/.hermes
docker run -it --rm \
-v ~/.hermes:/opt/data \
nousresearch/hermes-agent setup
精靈會問你要用哪家模型、金鑰是什麼,寫進資料夾裡的 .env。這一步要貼金鑰,我沒有做。
我跑的是不需要金鑰的版本,只問它版號:
docker run --rm -v ~/.hermes:/opt/data nousresearch/hermes-agent --version
Hermes Agent v0.21.7 (2026.9.24) · upstream 71d34bad
Install directory: /opt/hermes
Install method: docker
Python: 3.14.7
這樣跑一次要 6.3 秒。時間花在容器開機,它每次啟動都會先檢查資料夾、同步內建的技能,才執行你給的指令。版號前面會先印一長串開機訊息,是正常的。
第一次啟動時,它在資料夾裡放好設定檔 config.yaml、放金鑰的 .env、一份人格設定 SOUL.md,再把 58 個內建技能複製進去。這時候整個資料夾才 4 MB。
啟動之後我去看資料夾,擁有者被改掉了。我建的時候是我自己的帳號,跑過一次之後變成編號 10000 的使用者,那是容器裡執行 Hermes 的帳號。之後要在主機上直接改裡面的檔案,得用 sudo。官方文件的做法是啟動時加上 HERMES_UID 和 HERMES_GID,讓容器改用你的帳號編號來跑。這兩個變數我沒有測。
文件在這裡還有一個提醒,租主機的人值得看一下:有些主機商的網頁版終端機會把冒號、@ 這些符號傳錯,貼上去的 docker run 指令會壞掉,而且不會報錯。文件建議用 SSH 連進去再貼。
讓它常駐
docker run -d \
--name hermes \
--restart unless-stopped \
-v ~/.hermes:/opt/data \
-p 8642:8642 \
nousresearch/hermes-agent gateway run
這是文件上的指令。我跑了之後,7 秒出現啟動訊息,docker ps 顯示容器在執行。
確認狀態可以直接對容器下指令:
docker exec hermes hermes gateway status
✓ Gateway is running (supervised by s6 (container supervisor))
括號裡的 s6 是容器裡負責看管程式的工具,下一節會用到。
記憶體我是把容器裡每支程式的用量加起來看的。主程式剛啟動時是 302 MB,放了兩分鐘降到 274 MB,其他負責看管的小程式加起來只有幾 MB。也就是放著不動,大約佔 0.3 GB。
指令裡的 -p 8642:8642 是把它的 API 開到主機上。這裡有個細節。照這行指令跑,我從主機打 8642 連接埠是沒有回應的,進到容器裡面打同一個位址,才得到正常的回應。文件後面有解釋:API 預設只接受容器自己的連線,要對外得再加三個環境變數,其中一個是金鑰。只打算從 Telegram、LINE 這類聊天軟體用它的話,文件說這個連接埠可以不開。
它當掉會自己回來嗎
啟動訊息裡有一段話,說 gateway 是在 s6 的看管下執行的,當掉會自動重開。我試了一下。
我進容器把主程式強制砍掉,然後每半秒問一次它的健康狀態。新的程式不到 2 秒就出現了,但要到第 17 秒,健康檢查才又回報正常。這段期間容器本身沒有重開。
重開之後的紀錄裡多了一行,說上一次是不正常結束,可能的原因是被強制終止、記憶體不足,或是主機當掉。
所以程式自己掛掉,大約 17 秒會回來。整台主機重開機的情況,靠的是指令裡的 --restart unless-stopped,這個我沒有測。
開控制台:照文件會卡住
Hermes Agent 有一個網頁版的控制台。文件說在容器裡要開它,加一個環境變數和一個連接埠:
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
我照著跑。容器起來了,gateway 也正常,但 9119 連不上。docker logs 裡有這一段,30 秒內重複了四次:
Refusing to bind dashboard to 0.0.0.0 — the auth gate engages on non-loopback binds (0.0.0.0), but no auth providers are registered.
意思是:控制台要聽的位址不是只有本機,所以一定要有登入方式,而現在一個都沒設,它拒絕啟動。
原因文件有寫,只是在指令下面好幾段的地方。2026 年 6 月,有人在網路上掃到沒設登入的控制台,連進去之後讓代理在主機上放了 SSH 金鑰的後門。在那之後,只要不是只聽本機,就強制要登入,原本用來跳過登入的參數也失效了。
要讓它起來,文件給了三條路。
第一條是設帳號密碼,加 HERMES_DASHBOARD_BASIC_AUTH_USERNAME 和 HERMES_DASHBOARD_BASIC_AUTH_PASSWORD 兩個環境變數。文件特別註明,這只適合信任的內網,或是只有 VPN 連得到的機器,不適合直接放在公開的網路上。
第二條是用官方的 Nous Portal 帳號登入。文件說機器會直接面對公開網路的話,該用這一種。
第三條是讓控制台只聽容器自己,把 HERMES_DASHBOARD_HOST 設成 127.0.0.1,這樣不用登入。
我只測了第三條,因為我不在測試機上設密碼,也不對外開連接埠。改完之後 12 秒,控制台在容器裡面就有回應了。這條路有個代價,文件自己也說了:綁在容器的本機位址,-p 9119:9119 就連不到它。它是給前面另外架了反向代理的人用的。
控制台裡面有哪些功能,我另外寫在Hermes Agent Web UI。
用 Docker Compose
文件有一份範例,我存成 docker-compose.yaml 跑了:
services:
hermes:
image: nousresearch/hermes-agent:latest
container_name: hermes
restart: unless-stopped
command: gateway run
ports:
- "8642:8642"
- "9119:9119"
volumes:
- ~/.hermes:/opt/data
environment:
- HERMES_DASHBOARD=1
deploy:
resources:
limits:
memory: 4G
cpus: "2.0"
docker compose up -d
兩件事要知道。
範例裡有 HERMES_DASHBOARD=1,所以會遇到上一節同樣的狀況:gateway 正常,控制台被擋。我跑的時候,22 秒內那行拒絕訊息出現了兩次。不用控制台就把那一行和 9119 的連接埠拿掉,要用就照上一節補上登入方式。
另一件是最下面限制資源的那一段。在我的測試機上,留著它容器會起不來,錯誤訊息跟 cgroup 的設定有關。那是測試機本身的限制,它不允許設定資源上限。拿掉那一段之後就正常啟動了。一般的主機會不會遇到,我沒有機器可以驗證。如果你看到 cgroup 相關的錯誤,可以先試著拿掉這段。
更新
容器裡不能用 hermes update。我試了,它回的第一行是:
✗ ``hermes update`` doesn't apply inside the Docker container.
後面接著教你正確的做法,就是抓新的映像、重建容器:
docker pull nousresearch/hermes-agent:latest
docker rm -f hermes
docker run -d \
--name hermes \
--restart unless-stopped \
-v ~/.hermes:/opt/data \
nousresearch/hermes-agent gateway run
用 Compose 的話是 docker compose pull 再 docker compose up -d。
資料夾不動,所以設定都還在。文件說新版如果需要調整設定檔的格式,啟動時會自動處理,而且會先在旁邊留一份備份。這段我沒有驗證到,因為我只裝了一個版本。
文件另外有一句警告:不要讓兩個容器同時用同一個資料夾跑 gateway。
要多大的主機
官方文件給的數字:
| 最低 | 建議 | |
|---|---|---|
| 記憶體 | 1 GB | 2 到 4 GB |
| CPU | 1 核心 | 2 核心 |
| 資料夾的硬碟空間 | 500 MB | 2 GB 以上 |
文件說最吃記憶體的是瀏覽器,不用它的話 1 GB 夠,要用至少 2 GB,而且啟動時建議加 --shm-size=1g。
我量到的可以補上兩個數字。一個是映像本身要 4.5 GB 的硬碟,這不算在上面那張表的資料夾空間裡。另一個是放著不動時,gateway 佔 0.3 GB 左右,控制台也開的話,它自己另外再佔 0.3 GB。
資料夾本身很小。我開著幾分鐘、跑過幾個指令之後是 84 MB。
想省掉裝 Docker 和打這些指令的話,Hostinger 有 Hermes Agent 的一鍵安裝頁,選好方案它幫你裝成容器。這條路我沒有實際走過,方案和價格以它頁面上的為準。Hermes Agent 要選 Hostinger 哪一級方案、續約價多少,我整理在 Hostinger 評價。
跟直接安裝比
兩種我都跑過,數字放在一起:
| Docker | 直接安裝 | |
|---|---|---|
| 裝好要多久 | 抓映像 28 秒 | 114 秒 |
| 佔用硬碟 | 4.5 GB | 3.1 GB |
| gateway 放著不動 | 約 0.3 GB | 約 0.2 GB |
| 更新 | 換映像 | hermes update |
| 背景常駐 | Docker 負責 | 要裝成系統服務 |
直接安裝那一欄是在 1 核心、2 GB 的機器上量的,Docker 這一欄是 2 核心、4 GB,兩邊的時間也都看網路速度,不能嚴格對比。
Docker 多佔一點空間和記憶體,換來的是程式和資料分得很乾淨。文件還提到一個差別:容器裡的程式是唯讀的,代理改得到的只有資料夾裡的技能、記憶和設定,改不到它自己的程式。
這篇沒有測的
接上模型之後的對話,還有接聊天軟體。
設了密碼之後,從別台電腦連控制台。
Mac 和 Windows 上的 Docker Desktop。文件說那邊掛載資料夾的方式會影響它的資料庫,新版會自己處理。
arm64 的映像。
還在它和 OpenClaw 之間猶豫的話,兩邊的實測數字和搬家的過程在Hermes Agent 跟 OpenClaw 怎麼選。
常見問題
Hermes Agent 的 Docker 映像有多大?
我在 2026 年 10 月 13 日抓的 latest 是 4.51 GB,共 37 層,抓完硬碟多用了 4.3 GB 左右。測試機在機房,28 秒就抓完,家裡的網路會久很多。
Docker 版的 Hermes Agent 怎麼更新?
不能用 hermes update,我在容器裡跑它會直接說這個指令不適用。做法是 docker pull 抓新的映像,再把容器刪掉重建。資料在掛進去的資料夾裡,不會跟著容器消失。
為什麼照文件開了控制台卻連不上 9119?
容器裡的控制台預設綁在 0.0.0.0,而它規定只要不是只聽本機,就一定要有登入方式。沒設的話它會拒絕啟動,docker logs 裡會一直出現 Refusing to bind dashboard。設好帳號密碼的環境變數,或改成只聽 127.0.0.1 就會起來。
資料存在哪裡?換主機要搬什麼?
全部在你用 -v 掛到 /opt/data 的那個資料夾,官方文件的範例是 ~/.hermes。裡面有設定檔、放金鑰的 .env、記憶、技能和對話紀錄。映像本身不存任何資料。
這篇怎麼查證的
這篇只有一部分實際跑過,其餘依官方文件整理,查證日期 2026/10/13(官方映像 nousresearch/hermes-agent 的 latest(Hermes Agent v0.21.7,2026-10-12 建置),雲端測試機(Ubuntu 26.04,2 核心、4 GB,Docker 29.9.0、Compose 5.6.0)。抓映像、單次指令、常駐、砍掉程式看它重啟、控制台、Compose 是實際跑的;沒有接模型和聊天軟體,沒有設密碼、沒有從外面連線,那幾段依官方文件)。哪些有跑、哪些沒跑,文中各段有寫。價格與方案以官方頁面為準,工具改版後內容可能過期。