Docker 部署
为什么选择 Docker?
Section titled “为什么选择 Docker?”- 环境一致 — 在任何地方运行都是相同的环境
- 隔离运行 — 不会与系统包产生冲突
- 部署简单 — 一条命令即可启动
- 易于扩展 — 轻松运行多个实例
docker pull nousresearch/hermes-agent:latestdocker run -it \ -v ~/.hermes:/root/.hermes \ -p 8080:8080 \ nousresearch/hermes-agent:latestDocker Compose 部署(推荐)
Section titled “Docker Compose 部署(推荐)”创建 docker-compose.yml 文件:
version: '3.8'services: hermes-agent: image: nousresearch/hermes-agent:latest container_name: hermes-agent restart: unless-stopped volumes: - ./hermes-data:/root/.hermes ports: - "8080:8080" environment: - TZ=Asia/Shanghai启动服务:
docker compose up -d:::tip 推荐使用 Docker Compose Docker Compose 让配置更清晰、更易于版本管理。生产环境建议始终使用 Compose 方式部署。 :::
# 拉取指定版本docker pull nousresearch/hermes-agent:v0.13.0
# 或在 docker-compose.yml 中指定# image: nousresearch/hermes-agent:v0.13.0挂载 ~/.hermes 目录以持久化你的数据:
docker run -it \ -v /path/to/hermes-data:/root/.hermes \ nousresearch/hermes-agent:latest:::caution 重要提示 不要将同一数据目录同时挂载到多个运行中的容器。多个实例写入同一目录会导致数据损坏。 :::
| 变量 | 默认值 | 说明 |
|---|---|---|
HERMES_CONFIG | /root/.hermes/config.yaml | 配置文件路径 |
TZ | UTC | 时区设置 |
HERMES_LOG_LEVEL | INFO | 日志级别 |
限制资源使用
Section titled “限制资源使用”在 docker-compose.yml 中添加资源限制:
services: hermes-agent: # ... 其他配置 deploy: resources: limits: cpus: '2.0' memory: 4G reservations: memory: 2G只读根文件系统
Section titled “只读根文件系统”services: hermes-agent: # ... 其他配置 read_only: true tmpfs: - /tmp禁用特权提升
Section titled “禁用特权提升”services: hermes-agent: # ... 其他配置 security_opt: - no-new-privileges:true| 挂载路径 | 用途 | 必需 |
|---|---|---|
/root/.hermes | 主配置、记忆、技能、会话 | ✅ 是 |
/root/.hermes/skills | 自定义技能目录 | 否 |
/root/.hermes/memory | 持久记忆数据 | 否 |
# 使用 hermes doctordocker exec hermes-agent hermes doctor
# 检查容器状态docker ps --filter name=hermes-agent
# 查看日志docker logs -f hermes-agent# 停止服务docker compose down
# 重启服务docker compose restart
# 更新到最新版docker compose pull && docker compose up -d
# 进入容器 Shelldocker exec -it hermes-agent bash