opendronemap/clusterodmClusterODM是一款为NodeODM API兼容节点设计的反向代理、负载均衡器和任务跟踪器,具备可选的云自动扩展能力。它能将多个NodeODM节点整合到单一网络地址下,实现任务的智能分配(考虑最大图像数、队列大小和插槽可用性等因素),并支持通过主流云服务提供商(DigitalOcean、Hetzner、Scaleway、AWS)自动扩缩容节点。该工具已在WebODM Lightning Network上经过实战检验,可可靠处理数千个数据集。
!image
ClusterODM支持多种安装方式:
需先安装NodeJS:
bashgit clone [***] cd ClusterODM npm install
直接使用官方Docker镜像:
bashdocker pull opendronemap/clusterodm
从发布页面下载最新clusterodm-windows-x64.zip,解压后运行:
bashclusterodm.exe
通过node index.js --help或Docker运行时添加--help查看所有参数选项。
源码启动
bashnode index.js [参数]
Docker启动
bashdocker run --rm -ti -p 3000:3000 -p 8080:8080 opendronemap/clusterodm [参数]
-p 3000:3000:映射Web UI端口(NodeODM兼容界面)-p 8080:8080:映射CLI管理端口(节点管理)通过telnet连接8080端口管理节点:
bashtelnet localhost 8080
常用命令:
HELP:查看命令帮助NODE ADD <主机> <端口>:添加NodeODM节点NODE LIST:列出所有节点及其状态NODE LOCK <节点ID>:锁定节点(不分配新任务)NODE UNLOCK <节点ID>:解锁节点示例:添加并锁定本地NodeODM节点
> NODE ADD localhost 3001 > NODE LOCK 1 > NODE LIST 1) localhost:3001 [online] [0/2] <version 1.5.1> [L]
http://localhost:3000(与NodeODM界面一致)http://localhost:***(集群状态页面)ClusterODM可根据任务需求自动扩缩容云节点,配置步骤如下:
bash# 源码启动 node index.js --asr configuration.json # Docker启动(需挂载配置文件和docker-machine目录) docker run --rm -ti -p 3000:3000 -p 8080:8080 \ -v $(pwd)/configuration.json:/configuration.json \ -v ~/.docker/machine:/root/.docker/machine \ opendronemap/clusterodm --asr /configuration.json
自动扩展需至少添加一个"参考节点"(用于UI转发和选项验证),建议添加本地NodeODM并锁定:
bashtelnet localhost 8080 > NODE ADD localhost 3001 # 添加本地NodeODM节点(需先启动NodeODM) > NODE LOCK 1 # 锁定节点,避免任务分配到该节点 > NODE LIST # 确认节点状态 1) localhost:3001 [online] [0/2] <version 1.5.1> [L]
使用docker-compose快速部署ClusterODM和NodeODM(含参考节点):
yaml# docker-compose.yml version: '3' services: clusterodm: image: opendronemap/clusterodm ports: - "3000:3000" # Web UI端口 - "8080:8080" # CLI管理端口 - "***:***" # 节点状态端口 depends_on: - nodeodm nodeodm: image: opendronemap/nodeodm ports: - "3001:3000" # NodeODM端口
启动命令:
bashdocker-compose up
ClusterODM有多个增强功能计划,详情参见GitHub issues。欢迎通过OpenDroneMap社区论坛参与贡献或获取帮助。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像服务
在 Docker Desktop 配置镜像
Docker Compose 项目配置
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
MacOS OrbStack 容器配置
在宝塔面板一键配置镜像
Synology 群晖 NAS 配置
飞牛 fnOS 系统配置镜像
极空间 NAS 系统配置服务
爱快 iKuai 路由系统配置
绿联 NAS 系统配置镜像
QNAP 威联通 NAS 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
来自真实用户的反馈,见证轩辕镜像的优质服务