Skip to content

DASS 一体镜像部署 ​

适用版本:DASS5(当前版本)
交付物:dass_Install_server_docker_image.<版本>.<平台>.bin(一键安装器)
前提:目标主机已安装 Docker(建议 20.10 及以上)

1. 一体镜像是什么 ​

一个容器 = 一整套 DASS。 控制台(dassConsole + 反向代理 + OPConsole)与全部设备侧服务
(dasserver / openplant 实时库 / auth-center / rsas / magusdog / hms-modules / …)
同处同一个自包含容器,由 magusdog 按优先级队列拉起并守护——与真机上跑法完全一致。

与安装包(.bin 自解压)方式的区别:

安装包 dass_Install_server.*.bin一体镜像 dass_Install_server_docker_image.*.bin
装在直接装到宿主机装进 Docker 容器
宿主上有 /opt/dasserver 整套目录不需要任何 DASS 文件
数据宿主上原位置挂数据卷到宿主指定目录(见 §7)
迁移需重新安装换台机器原样起容器即可
组件升级控制台「系统升级」同样走容器内「系统升级」(见 §9),不换镜像
网络管理服务含 hms-network不含(容器网络由 Docker / 宿主管理)

2. 运行环境要求 ​

项要求
DockerEngine 20.10+(运行不需要 buildx/compose,只要 docker 命令)
主机架构必须与安装器一致:x86-64 主机用 .linux.bin,ARM64 主机用 .arm64.bin。下错了文件根本跑不起来(Linux 会报 exec format error)
内存≥ 4 GB(容器默认限额 4g,可调)
CPU≥ 4 核(默认限额 6)
磁盘≥ 20 GB(镜像约 1 GB;数据卷随实时库历史数据增长)

【提示】拿不准主机架构就跑 uname -m:x86_64 → .linux.bin;aarch64 → .arm64.bin。

3. 一键安装(推荐) ​

3.1 先体检(不动任何东西) ​

bash
chmod +x dass_Install_server_docker_image.5.4.0.2026-09-29.arm64.bin
./dass_Install_server_docker_image.5.4.0.2026-09-29.arm64.bin --check-only

会打出一张体检表(✓ 通过 / ! 注意 / ✗ 必须先处理),逐项检查:

安装前体检(实测输出)

▲ 实测输出:16 项检查逐条列出;这一份全部通过。注意:磁盘/内存等数值随机器而变,端口号若与上图不同属正常(现场按空闲端口调整)。

检查项说明
运行平台 / 权限是否在 Linux 上、是否有 docker 权限
docker 命令与版本是否装了、版本是否 ≥ 20.10
架构匹配安装器、内嵌镜像、宿主三者架构是否一致
磁盘 / 内存是否够用
6 个端口占用逐个试绑;被占用会点名是哪个容器占的,并给出换法
容器名 / 网络是否可用或已存在
数据目录是否可写、是否需要播种

有问题会在结尾单独汇总(不藏在长输出里)并给出处理办法。体检不过不会动手安装。

3.2 安装 ​

bash
sudo ./dass_Install_server_docker_image.5.4.0.2026-09-29.arm64.bin

它自动完成六步,不需要手工敲任何 docker 命令:

一键安装六步(实测输出)

[1/6] 载入镜像        (内嵌的镜像包直接喂给 docker load,不落盘)
[2/6] 准备数据目录    (首次自动播种整棵 /opt/dasserver;已有内容则跳过、不覆盖)
[3/6] 准备自定义网络
[4/6] 创建并启动容器  (固定 hostname + MAC,见下)
[5/6] 等待控制台就绪
[6/6] 打印访问地址与后续步骤

安装完成后的提示(实测输出)

▲ 装完会直接告诉你访问地址、默认账号、以及必须去导入授权,并给出常用命令。

【注意】hostname 与 MAC 会被固定下来(默认 magusbox / 02:42:ac:11:00:99)。
它们决定 openplant 授权绑定的 Host Code——装好后不要再改,改了授权失效、实时库起不来。
若现场需要换,在首次安装时就指定:--hostname 设备名 --mac 02:42:xx:xx:xx:xx。

3.3 常用安装参数 ​

bash
--data-dir DIR       宿主数据目录(默认 /data/dass)
--name NAME          容器名(默认 dass-server)
--hostname NAME      容器 hostname(默认 magusbox)⚠️ 授权相关
--mac MAC            容器 MAC(默认 02:42:ac:11:00:99)⚠️ 授权相关
--port-console N     控制台 HTTPS 宿主端口(默认 8095)
--port-openplant N   实时库宿主端口(默认 8200)
--port-grpc N        设备端 gRPC 宿主端口(默认 7642)
--port-grpc-tls N    设备端 gRPC TLS 宿主端口(默认 7643)
--port-authcenter N  注册中心宿主端口(默认 471)
--port-magusdog N    magusdog 管理面宿主端口(默认 8089)
--memory 4g --cpus 6 资源上限
--check-only         只体检不安装
--force              容器已存在时重建(**数据不受影响**)
--uninstall          卸载容器与网络(**数据目录保留**)
--no-wait            不等待控制台就绪
-v                   查看版本信息

【注意】端口默认与容器内同号(7642:7642 等),这样与二进制安装及其它安装方式的口径一致 ——
客户端连 7642 就是 7642,不用记"容器要换一个号"。只有宿主端口真被占用时才改。

4. 手工安装(不用一键安装器时) ​

适合需要自己控制细节、或在已有编排体系里接入的场景。

4.1 导入镜像 ​

bash
docker load -i dass_server.5.4.0.2026-09-29.arm64.docker-image.tar.gz
docker image inspect dass_server:5.4.0.2026-09-29-arm64 --format '{{.Os}}/{{.Architecture}}'
# 应输出 linux/arm64

4.2 播种数据目录(首次必须做) ​

宿主目录为空时直接挂上去,空目录会盖掉镜像里那一整棵设备树,容器起来就是空壳。

bash
CID=$(docker create dass_server:5.4.0.2026-09-29-arm64 /bin/true)
mkdir -p /data/dass/dasserver
docker cp "$CID:/opt/dasserver/." /data/dass/dasserver/
docker rm -f "$CID"

(约 550 个文件 / 550 MB,通常几秒完成;幂等,已有数据不会覆盖。)

4.3 建网络并起容器 ​

bash
docker network create dass-net 2>/dev/null || true

docker run -d \
  --name dass-server \
  --network dass-net \
  --hostname magusbox \
  --mac-address 02:42:ac:11:00:99 \
  --restart unless-stopped \
  --memory 4g --cpus 6 \
  -p 8095:8095 -p 8200:8200 \
  -p 7642:7642 -p 7643:7643 \
  -p 471:471 -p 8089:8089 \
  -v /data/dass/dasserver:/opt/dasserver \
  dass_server:5.4.0.2026-09-29-arm64

【注意】

  • --mac-address 只能用在自定义网络上(默认 bridge 不支持),所以先建 dass-net。
  • --restart unless-stopped 让容器开机/异常后自动拉起(见 §8)。
  • 冒号后面是容器内端口,不要改;被占用时只改冒号前面那个。

5. 端口说明 ​

容器内端口默认宿主端口用途是否必须对外
80958095控制台(HTTPS,经反向代理)—— 对外唯一入口✅ 必须
82008200openplant 实时库按需
76427642设备端 gRPC按需
76437643设备端 gRPC TLS按需
471471注册中心(无认证,勿暴露公网)按需
80898089magusdog 守护管理面(环回免鉴权,宿主访问需 token)按需

【注意】对客户/浏览器只需开放 8095;471 与 8089 不要暴露到公网(471 无认证)。

6. 访问控制台并导入授权 ​

浏览器打开:

https://<目标主机IP>:8095/

会自动跳转到 /dass 登录页。

控制台登录页(实测截图)

▲ 自签证书会提示不安全,选「继续访问」即可。

默认账号:

项值
用户名dassConsole
密码dassConsole@2025

⚠️ 6.1 必须导入授权(镜像里不带授权) ​

镜像出厂不含任何授权文件——授权是按客户 Host Code 签发、需要购买的凭据,
必须由客户在安装后自行导入:

控制台 → 授权管理 → 导入授权文件

授权管理(实测截图)

▲ 「维护 → 授权管理」页面。设备码就是申请授权时需要的 Host Code;上图为未导入授权的状态(授权到期时间空白、授权点数 0)——正好说明镜像出厂不带授权。

授权与容器 MAC 绑定(§3.2 的注意)。未导入授权时,实时库不会运行,界面上的实时数据不可用。

【注意】

  • 首次登录后请立即修改默认密码。
  • 镜像是自签证书,浏览器会提示不安全 → 选择「继续访问」;正式环境请替换证书。

7. 数据持久化 ​

整棵 /opt/dasserver 挂成一个数据卷,落在宿主目录(默认 /data/dass/dasserver)。
容器重建、Docker 重启、主机重启,数据都不会丢。

落在数据卷里的(客户数据)说明
openplant/data/实时库历史数据(最值钱)
dases/、dastemplate/创建的采集实例、上传的驱动
db/、conf/设备端运行库、系统配置与云平台身份
server/*/各系统服务自己的数据(控制台库、magusdog 服务清单、各服务数据库…)
lib/、jre/、server/ 下的程序本体也是这棵树的一部分 ⇒ 组件升级的结果同样保留(见 §9)

【操作】备份 = 直接打包宿主目录:

bash
tar czf dass-data-$(date +%F).tar.gz -C /data/dass dasserver

【注意】

  • 换机器迁移:把 /data/dass/dasserver 整个拷过去,再按 §3 起容器即可(MAC/hostname 需保持一致,否则授权失效)。
  • 镜像相当于「出厂种子」:换镜像不会自动刷新这棵树;日常组件更新走 §9 的系统升级。

8. 开机自启 ​

两件事都要做:

bash
systemctl enable docker      # ① Docker 服务开机自启
systemctl is-enabled docker  #    应输出 enabled

# ② 容器自启动策略(一键安装器已默认加上)
docker inspect dass-server --format '{{.HostConfig.RestartPolicy.Name}}'   # 应输出 unless-stopped

【注意】仅有 --restart 不够——Docker 服务必须开机自启。
另外 unless-stopped 的语义是「除非你手动 stop 过」:手工 docker stop 后,主机重启不会自动拉起,
用 docker start dass-server 恢复。

9. 组件升级:用「系统升级」,不换镜像 ​

本方案不通过更换镜像升级。 组件(DASS Server 二进制、各系统服务、驱动、系统组件)的更新
一律走控制台/设备端自带的「系统升级」功能在容器内完成。

项说明
升级入口控制台 → 系统升级(见下图)

系统升级(实测截图)

▲ 「维护 → 系统升级」:支持在线更新与本地更新,升级结果落在数据卷里。
| 升级范围 | DASS Server 主程序、系统服务、应用驱动、系统组件 |
| 数据影响 | 不受影响——升级写入的正是 §7 那棵数据卷树 |
| 升级是否保留 | ✅ 保留。即便容器被删除后重建,升级结果仍在(整棵树都在数据卷里) |

【注意】升级过程中不要删除容器或数据卷。完成后按提示 docker restart dass-server 即可。

10. 日常运维 ​

bash
docker ps                          # 查看状态
docker logs -f dass-server         # 实时日志
docker exec -it dass-server bash   # 进入容器
docker restart dass-server         # 重启(数据保留)
docker stop / start dass-server    # 停 / 启

容器内常用位置(与真机一致):

路径内容
/opt/dasserver/logs/各服务日志
/opt/dasserver/conf/系统配置(.env 云平台身份等)
/opt/dasserver/server/各系统服务目录
/opt/dasserver/openplant/实时库(data/ 历史数据、license/ 授权校验链)

11. 常见问题 ​

现象排查方向
运行 .bin 报 exec format error下错架构了:x86-64 主机要用 .linux.bin,ARM64 用 .arm64.bin
体检报「端口 xxx 已被占用」按体检给出的提示换端口(--port-xxx <空闲端口>),或先停掉占用者
容器起来就退出 / 反复重启docker logs dass-server;多半是数据卷没播种(先跑 --check-only 看提示)
控制台打不开端口是否被占;curl -k https://127.0.0.1:8095/dass 是否 200
实时库不运行 / 无实时数据授权没导入(§6.1);或 hostname/MAC 变了导致授权失效
起来后是「空的」数据卷没播种就被挂上了;清空宿主目录后重装(安装器会自动播种)
想换台机器跑安装器 + 数据目录一起拷过去,MAC/hostname 保持不变再装
磁盘持续增长是实时库历史数据(正常)。按需调整保留策略或扩容

12. 卸载 ​

bash
./dass_Install_server_docker_image.5.4.0.2026-09-29.arm64.bin --uninstall   # 删容器+网络,数据保留
rm -rf /data/dass                                                          # ⚠️ 删数据——不可恢复,先备份
docker rmi dass_server:5.4.0.2026-09-29-arm64                               # 删镜像

【注意】删宿主数据目录会永久丢失实时库历史数据与全部配置,操作前务必备份(§7)。

13. 相关文档 ​