Hermes Agent Docker 离线部署完整指南
Hermes Agent Docker 离线部署完整指南文档说明适用场景目标服务器无法访问互联网需要通过有网络的设备传输 Docker 镜像支持架构AMD64x86 服务器和 ARM64镜像来源Docker Hub 官方镜像nousresearch/hermes-agenthttps://hub.docker.com/r/nousresearch/hermes-agent/tags第一阶段在有网设备上准备镜像包1.1 确认有网设备的架构# 查看本机架构uname-m# 输出 x86_64 表示 AMD64 架构# 输出 aarch64 表示 ARM64 架构1.2 拉取 Hermes 镜像# 拉取最新版本Docker 会自动匹配当前机器架构dockerpull nousresearch/hermes-agent:latest# 或者拉取特定版本dockerpull nousresearch/hermes-agent:v2026.5.29.21.3 验证镜像下载成功# 查看已拉取的镜像dockerimages|grephermes-agent# 确认镜像架构是否正确dockerinspect nousresearch/hermes-agent:latest|grepArchitecture1.4 导出镜像为 tar 文件# 基本导出命令dockersave nousresearch/hermes-agent:latest-ohermes-agent.tar# 推荐使用 gzip 压缩以节省空间dockersave nousresearch/hermes-agent:latest|gziphermes-agent-latest.tar.gz1.5 查看导出文件# 查看文件大小ls-lhhermes-agent*# 输出示例# -rw-r--r-- 1 root root 3.2G May 31 10:00 hermes-agent-latest.tar.gz1.6 为不同架构分别打包可选如果需要在多种架构的离线服务器上部署建议分别打包# 拉取 AMD64 版本dockerpull--platformlinux/amd64 nousresearch/hermes-agent:latestdockersave nousresearch/hermes-agent:latest|gziphermes-agent-amd64.tar.gz# 拉取 ARM64 版本dockerpull--platformlinux/arm64 nousresearch/hermes-agent:latestdockersave nousresearch/hermes-agent:latest|gziphermes-agent-arm64.tar.gz1.7 命名规范建议hermes-agent-{版本}-{架构}-{日期}.tar.gz 示例 hermes-agent-latest-arm64-20260531.tar.gz hermes-agent-v2026.4.30-amd64-20260531.tar.gz第二阶段传输到离线服务器2.1 传输方式选择根据实际情况选择以下任一方式方式命令示例适用场景U盘/移动硬盘cp hermes-agent.tar.gz /mnt/usb/物理隔离环境SCPscp hermes-agent.tar.gz user192.168.1.100:/opt/内网可通HTTP 下载python3 -m http.server 8000然后wget临时传输2.2 在离线服务器上创建目录# 创建 Hermes 工作目录mkdir-p/opt/hermes-agentcd/opt/hermes-agent第三阶段在离线服务器上导入镜像3.1 导入 tar 文件# 方式一导入未压缩的 tar 文件dockerload-ihermes-agent.tar# 方式二导入压缩的 tar.gz 文件gunzip-chermes-agent-latest.tar.gz|dockerload3.2 验证导入成功# 查看已导入的镜像dockerimages|grephermes-agent# 确认镜像架构与服务器匹配dockerinspect nousresearch/hermes-agent:latest|grepArchitectureuname-m3.3 测试运行# 快速测试镜像是否可用dockerrun--rmnousresearch/hermes-agent:latest--help第四阶段部署运行4.1 准备 docker-compose.yml 文件创建docker-compose.ymlservices:# Gateway 服务 - 处理消息、API 请求hermes-gateway:image:nousresearch/hermes-agent:latestcontainer_name:hermes-gatewayrestart:unless-stopped#network_mode: hostports:-8642:8642volumes:-~/.hermes:/opt/datacommand:[gateway,run]# Dashboard 服务 - Web 管理界面hermes-dashboard:image:nousresearch/hermes-agent:latestcontainer_name:hermes-dashboardrestart:unless-stoppedports:-9119:9119volumes:-~/.hermes:/opt/datacommand:[dashboard,--tui,--host,0.0.0.0,--insecure,--port,9119]4.2 创建必要目录和配置文件# 创建数据目录mkdir-pdata config logs# 如有配置文件放入 config 目录# cp /path/to/config.yaml ./config/4.3 启动服务# 后台启动docker-composeup-d# 查看启动状态docker-composeps# 查看实时日志docker-composelogs-f4.4 常用管理命令# 停止服务docker-composedown# 重启服务docker-composerestart# 进入容器内部dockerexec-ithermes-agent /bin/bash# 查看资源占用dockerstats hermes-agent第五阶段常见问题处理5.1 架构不匹配错误错误信息The requested images platform (linux/amd64) does not match the detected host platform (linux/arm64/v8)解决方案确认打包时使用的是与目标服务器匹配的架构镜像重新打包正确架构的镜像5.2 端口冲突# 查看端口占用netstat-tlnp|grep:8000# 修改 docker-compose.yml 中的端口映射ports: -8001:8000# 宿主机端口8001映射到容器80005.3 磁盘空间不足# 检查磁盘使用情况df-h# 清理无用镜像和容器dockersystem prune-a5.4 容器无法启动# 查看详细错误日志docker-composelogs--tail100# 尝试前台运行调试docker-composeup附录快速命令速查表步骤命令拉取镜像docker pull nousresearch/hermes-agent:latest导出镜像docker save 镜像名:标签 -o 文件名.tar压缩导出docker save 镜像名:标签 | gzip 文件名.tar.gz导入镜像docker load -i 文件名.tar压缩导入gunzip -c 文件名.tar.gz | docker load查看镜像docker images | grep hermes查看架构docker inspect 镜像名 | grep Architecture启动服务docker-compose up -d停止服务docker-compose down查看日志docker-compose logs -f