DeepSeek Harness 跑在 Docker 里:镜像选择、端口映射与插件数据持久化

配置与使用发布于 2026-11-01作者: DeepSeek Plugin 插件市场
Docker容器数据卷插件持久化DeepSeek Harness
DeepSeek Harness 容器化最常见的坑不是启动,而是重建后数据全丢。本文讲清镜像与启动参数、端口与访问、DSH_HOME 数据卷怎么挂、插件如何持久化,以及四种重建失败的排查顺序。

DeepSeek Harness 跑在容器里,启动只是一半问题,另一半是重建后数据还在不在。 会话、插件与配置都在 DSH_HOME 下;不挂卷,重建一次就回到初始状态。

容器里最容易丢的三样

三样数据决定你重建后是否还要从头配。

数据位置丢了会怎样
会话DSH_HOME/sessions历史对话消失
插件与配置DSH_HOME 与 profile需要重新安装与配置
密钥与设置配置目录需要重新填模型与密钥

三样都在 DSH_HOME 体系下。 挂对一个目录,三样一起保留;只挂 sessions,插件配置仍会丢。

不要把数据放在容器内路径。 容器内路径随容器生命周期消失;挂载点必须指向宿主机目录或命名卷。

数据卷怎么挂

挂载是容器化的核心动作,顺序与路径都要对。

  1. 在宿主机准备一个目录,例如 ~/dsh-data。
  2. 启动容器时把该目录挂到容器的 DSH_HOME。
  3. 设置环境变量,让 DSH 明确使用这个目录。
  4. 启动后确认目录里出现 sessions、config 等子目录。
  5. 重建容器时复用同一个挂载,数据即可恢复。

路径要一致。 环境变量指向 A,卷挂到 B,数据就会写到容器内临时路径;重建后看起来像「卷没生效」。

命名卷与绑定挂载都可以。 绑定挂载便于直接备份与查看;命名卷由 Docker 管理,迁移时要用导出命令。

首次启动先确认写入。 进容器看目录是否可写;权限不对时,DSH 可能启动成功但写不进数据。

端口与访问

端口映射决定谁能访问,安全边界在这里。

  1. 容器内服务监听一个端口,映射到宿主机端口。
  2. 优先映射到 127.0.0.1,只允许本机访问。
  3. 需要局域网访问时,再评估认证与来源限制。
  4. 公网访问必须加反向代理、TLS 与认证。
  5. 不要用 0.0.0.0 图省事,暴露面会扩大。

端口映射不是认证。 能访问端口不等于有权限使用;认证要在服务或代理层做。

容器网络与宿主机不同。 宿主机 127.0.0.1 访问不到容器内部地址时,先看映射与监听地址,不要改服务配置乱试。

插件持久化

插件装进 profile,profile 在 DSH_HOME 下。 持久化的关键是「装对位置」。

  1. 确认插件安装在挂载目录对应的 profile 里。
  2. 用 dsh plugin --profile web list 核对插件在列。
  3. 重建容器后再次核对,确认插件仍在。
  4. 插件配置与密钥同样在 DSH_HOME 下,不要单独放容器内。
  5. 需要迁移时,整目录复制而不是只复制插件包。

「插件在但配置没了」多半是配置写到了别处。 检查配置路径与环境变量,确认没有落到临时目录。

容器内装插件仍要网络。 下载失败与宿主机网络、镜像源有关;先确认容器能访问 registry。

重建容器的正确顺序

重建不是删了再起,顺序错了会丢数据。

  1. 停止旧容器,确认没有写入进行中。
  2. 备份挂载目录,至少保留一份可回退副本。
  3. 用同一个挂载与同一个 DSH_HOME 启动新容器。
  4. 启动后核对会话、插件与配置三样。
  5. 确认无误后再删除旧容器与旧镜像。

先备份再重建。 卷配置写错时,备份是唯一退路;直接删旧容器,可能连排查现场都没了。

版本要记录。 镜像标签、DSH 版本与插件清单写下来;升级出问题时能回到上一组。

四种失败

容器场景的失败集中在四类。

  1. 重建后数据全丢: 卷没挂或挂错路径;看环境变量与挂载点是否一致。
  2. 插件消失: 插件装在容器内路径;确认 profile 是否在挂载目录下。
  3. 端口访问不了: 映射错误或监听地址不对;先在本机 curl 对照。
  4. 权限错误: 容器用户对挂载目录无写权限;调整目录权限或运行用户。

四类的共同排查入口是「进容器看路径」,日志也要保留。 只看宿主机目录,无法确认容器内实际写到了哪里。容器日志在删除后可能丢失;出问题时先导出,再重建。

安全前提

容器化带来隔离,也带来新的暴露面。

  1. 镜像来源可信: 优先官方或自建镜像,避免来源不明的打包。
  2. 最小端口暴露: 只映射必要端口,优先本机地址。
  3. 密钥不进镜像: 用环境变量或挂载配置注入,不要烘焙进镜像。
  4. 插件权限收敛: 容器内同样遵循最小权限,不因为隔离就放宽。
  5. 定期更新: 基础镜像与 DSH 版本都要跟进安全更新。

隔离不等于安全。 容器能限制影响范围,但不能替代认证、权限与来源判断。

下一步

先挂对卷,再谈端口与插件。 想看容器安装的三种方案,看《DeepSeek Harness 在 Docker 里怎么装》;想看 Linux 部署,看《deepseek harness desktop linux 怎么跑》;想看远程访问安全,看《DeepSeek Harness 远程访问怎么配》。

来源:DeepSeek Harness 官方文档、dsh CLI README、deepseek-harness 仓库

常见问题

在容器里跑 DeepSeek Harness,为什么一定要挂数据卷?

容器里跑 DeepSeek Harness 要挂数据卷,是因为会话、插件与配置都在 DSH_HOME 下。不挂卷,容器删除或重建后这些数据随容器一起消失;挂卷后数据留在宿主机。

容器端口映射怎么写比较安全,能不能直接映射到 0.0.0.0?

端口映射只映射到宿主机本地地址更安全,例如 127.0.0.1:端口:容器端口。直接映射到所有网卡会把服务暴露到局域网或公网,需要额外的认证与限制。

容器重建后插件不见了,但数据卷还挂在那里,通常是什么原因造成的?

容器重建后插件不见了但数据卷还在,多半是 DSH_HOME 没指向卷,或插件装在容器内另一个路径。确认环境变量与卷挂载点一致,再用 dsh plugin list 核对。

DeepSeek Harness 容器里的插件沙箱和宿主机上有什么不同?

容器本身已有隔离层,但 DeepSeek Harness 的插件仍按沙箱模式运行;权限、路径与设备访问受容器限制。涉及图形界面或系统级操作的插件,在容器里可能不可用。

相关术语

DSH_HOME
DSH_HOME 是 DeepSeek Harness 的数据根目录,配置、会话、插件与缓存都在其下,可通过环境变量指定。— DeepSeek Harness 官方文档
数据卷
数据卷是 Docker 中独立于容器生命周期的持久化存储,容器删除后数据仍保留在宿主机。— DeepSeek Harness 官方文档
端口映射
端口映射把容器内端口绑定到宿主机端口,决定外部如何访问容器服务。— dsh CLI README
镜像
镜像是容器运行的基础文件系统与依赖快照,选择可信来源的镜像能减少供应链风险。— deepseek-harness 仓库

来源