Deepseek Harness镜像离线部署

1. 前言

本文记录通过容器镜像方式,本地部署 Deepseek Harness(DSH)的完整流程。作者已将 DSH 运行所需的全部环境打包成镜像,省去了部署时构建环境的繁琐准备,只需下载、导入并运行容器,即可快速完成本地部署。

2. 前提条件

部署前请确认本机环境满足以下要求:

  • Docker 20.10+ 以上版本
  • 已安装 Docker Compose(可选,本文使用 docker run 直接部署)
  • 磁盘剩余空间建议 10GB 以上(镜像解压后占用较大)

检查 Docker 版本:

bash 复制代码
docker --version

3. 下载镜像包

镜像包已上传至网盘,下载后得到一个 dsh-latest.tar 文件:

下载完成后,确认文件完整性:

bash 复制代码
ls -lh dsh-latest.tar

4. 导入镜像

使用 docker load 命令将镜像包导入本地 Docker:

bash 复制代码
docker load -i dsh-latest.tar

导入完成后,验证镜像是否成功加载:

bash 复制代码
docker images | grep dsh

5. 创建工作目录

创建容器挂载的工作目录,用于存放项目代码和文件(以当前用户目录为例):

bash 复制代码
mkdir -p /home/liuwenlin/workspace

提示:目录路径可根据实际需求调整,后续 docker run 中的挂载参数需同步修改。

6. 运行容器

使用以下命令创建并启动 DSH 容器:

bash 复制代码
docker run -d --name dsh \
  --restart unless-stopped \
  -p 0.0.0.0:3080:3080 \
  -v dsh-data:/home/dsh/.dsh \
  -v /home/liuwenlin/workspace:/workspace \
  -e DSH_HOME=/home/dsh/.dsh \
  -e DSH_TRUST_ALL=1 \
  registry.cn-hangzhou.aliyuncs.com/skymirror/dsh:latest --no-open

参数说明:

参数 说明
-d 后台运行容器
--name dsh 指定容器名称
--restart unless-stopped 容器异常退出时自动重启
-p 0.0.0.0:3080:3080 映射 3080 端口到宿主机
-v dsh-data:/home/dsh/.dsh 持久化 DSH 配置数据
-v /home/liuwenlin/workspace:/workspace 挂载工作目录
-e DSH_HOME=/home/dsh/.dsh 指定 DSH 数据目录
-e DSH_TRUST_ALL=1 信任所有来源
--no-open 启动时不自动打开浏览器

7. 获取访问 Token

容器启动后,查看日志获取访问 Token:

bash 复制代码
docker logs dsh

在日志输出中找到 Token 字段,复制其值。然后在浏览器中访问:

复制代码
http://127.0.0.1:3080/?token=DWX5wExFcMYzh7Aj9BkvV8rNc6dRLvF1UPImDL3iotY

将 URL 中的 Token 替换为你日志中实际输出的值。

8. 常见问题排查

容器启动失败

bash 复制代码
docker logs dsh

查看错误日志,常见原因包括端口被占用、镜像未正确导入等。

端口被占用

bash 复制代码
docker ps -a | grep 3080

若端口被占用,可修改 -p 参数映射到其他端口,如 -p 3081:3080。

Token 无法访问

确认浏览器访问的 Token 与日志输出一致,且容器处于运行状态:

bash 复制代码
docker ps | grep dsh

9. 为什么要使用 Token 访问?

这属于该类工具的默认安全机制(Secure by Default),主要基于以下两点考虑:

必须显式鉴权:作为能执行系统命令的开发环境,官方刻意不开放"无密码直接裸连",防止内网暴露引发安全事故。任何访问者都必须持有有效 Token 才能进入环境,避免未授权用户直接操作容器。

物理隔离验证:官方故意只把 Token 打印在后台终端日志里,以此保证只有拥有服务器底层操作权限的管理员,才能拿到密钥授权访问。这种方式将"能访问环境"与"能查看服务器日志"绑定,形成一道天然的权限隔离层。

相关推荐
杜哥无敌3 小时前
MaxKB 容器跨平台迁移与发布完整技术手册
ai
m0_682906534 小时前
工作台后端编排链路自检 10-17 11:45:56
ai·大模型·seo·geo·结构化数据·indexnow
TTATTC4 小时前
单体应用如何支撑千所机构独立测评?拆解 sg-exam 行级多租户隔离与动态组卷内核
docker·开源
TTATTC4 小时前
每加一个登录端都要改 Controller?Spring Boot 泛型策略工厂与模板切面演进
docker·开源
程序员老赵4 小时前
Docker 部署 MaxKB:轻松搭建企业级智能体平台
前端·docker·agent
万联WANFLOW4 小时前
LiteLLM 1.107.0 投毒排查实战:依赖、Docker、CI 环境分别怎么查?
安全·docker·llm
长不大的杨瑞杰6 小时前
给 OpenCode v2 接入大模型:Provider、模型选择与 API Key 安全配置实战
人工智能·安全·ai·语言模型
360智汇云6 小时前
模型压缩功能上线:让大模型轻装上阵
ai
Navicat中国7 小时前
Navicat 18 支持 Azure OpenAI 接入,合规 AI 赋能 SQL 开发
数据库·人工智能·microsoft·ai·azure·navicat·数据
七夜zippoe8 小时前
启元 Q1 三份 MJCF 仿真文件对比:显示 / 运动学 / 全范围怎么选
ai·机器人·仿真·robot·mjcf