Appearance
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. 运行环境要求
| 项 | 要求 |
|---|---|
| Docker | Engine 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/arm644.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. 端口说明
| 容器内端口 | 默认宿主端口 | 用途 | 是否必须对外 |
|---|---|---|---|
| 8095 | 8095 | 控制台(HTTPS,经反向代理)—— 对外唯一入口 | ✅ 必须 |
| 8200 | 8200 | openplant 实时库 | 按需 |
| 7642 | 7642 | 设备端 gRPC | 按需 |
| 7643 | 7643 | 设备端 gRPC TLS | 按需 |
| 471 | 471 | 注册中心(无认证,勿暴露公网) | 按需 |
| 8089 | 8089 | magusdog 守护管理面(环回免鉴权,宿主访问需 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. 相关文档
- DASSERVER部署 —— 不使用容器、直接装在宿主机上的部署方式
- DASSConsole部署 —— 控制台单独部署
- 快速入门 —— 登录后如何开始配置
- 常用操作 —— 日常使用
- 升级指南 —— 版本升级
帮助中心