Skip to content

通过 Docker 部署 ​

选择镜像 ​

镜像
说明
emqx/neuronex:x.y.z标准镜像。集成 Python 运行环境和规则引擎的 Python SDK(ekuiper、pynng),使用 Python 便携插件必须用这个
emqx/neuronex:x.y.z-extend基于标准镜像,额外包含 FFmpeg 和 ONNX 依赖

不确定选哪个就用标准镜像。完整 tag 列表见 Docker Hub,也可以从官网下载页获取。

启动 ​

bash
docker pull emqx/neuronex:3.9.2

docker run -d --name neuronex \
  -p 8085:8085 \
  -v /host/neuronex-data:/opt/neuronex/data \
  --ulimit nofile=65535:65535 \
  --log-opt max-size=100m \
  --privileged=true \
  emqx/neuronex:3.9.2

启动后浏览器打开 http://localhost:8085,用初始账号 admin / 0000 登录。

必须挂载数据目录

-v 将宿主机目录挂载至容器的 /opt/neuronex/data。未挂载时,删除容器将一并丢失驱动配置、点位表与规则。

启动参数 ​

参数
说明
-p 8085:8085端口映射,用于访问 Web 控制台和 HTTP API
-v <宿主机目录>:/opt/neuronex/data持久化配置与数据,见上方提示
--ulimit nofile=65535:65535提高文件描述符上限,节点较多时需要,见下文
--log-opt max-size=100m限制容器标准输出日志的大小
--privileged=true以特权模式运行容器,默认启动命令已包含此参数
--restart=alwaysDocker 守护进程重启时自动拉起容器
--device <宿主机设备>:<容器设备>映射串口等设备,见连接串口设备

更多启动参数见启动参数与配置文件。

连接串口设备 ​

采集 Modbus RTU、DL/T645 等串口协议时,需要把宿主机的串口映射进容器:

bash
docker run -d --name neuronex \
  -p 8085:8085 \
  --device /dev/ttyUSB0:/dev/ttyS0 \
  --privileged=true \
  emqx/neuronex:3.9.2

/dev/ttyUSB0 是宿主机上的串口设备,/dev/ttyS0 是容器内的路径——在南向驱动的串口设备参数里填容器内的这个路径。多个串口就重复使用 --device。

节点较多时提高文件描述符上限 ​

每个节点运行时都会占用若干文件描述符。当配置的节点数较多时,总量会超过容器默认的 1024 上限,表现为节点连不上或频繁断开。

推荐直接调高上限:

bash
--ulimit nofile=65535:65535

默认启动命令已包含 --privileged=true,它会解除容器的各项限制(包括文件描述符),但同时赋予容器接近宿主机 root 的权限。在加固部署中,如果只需提高文件描述符上限,可移除此参数并保留 --ulimit。

卸载 ​

停止并删除容器:

bash
docker stop neuronex || true
docker rm neuronex || true

如需一并删除镜像:

bash
docker rmi emqx/neuronex:<tag>

TIP

已通过 -v 挂载宿主机目录时,删除容器不会清除宿主机上的数据,需要自行删除对应目录。