Orion Context Broker 是 FIWARE 生态系统中的核心组件,实现了 NGSI-v2 标准,作为上下文信息管理的枢纽,负责处理实体、属性、订阅和注册等上下文数据的存储、检索与分发。其主要用途包括:
fiware-service 和 fiware-servicepath 头信息实现多租户隔离通过 Docker Compose 自动关联 Orion 和 MongoDB 容器,适用于快速体验或测试,无需手动配置数据库。
创建工作目录(如 ~/fiware):
bashmkdir -p ~/fiware && cd ~/fiware
创建 docker-compose.yml 文件,内容如下:
yamlmongo: image: mongo:4.4 command: --nojournal # 非生产环境优化,加快启动速度 orion: image: fiware/orion links: - mongo # 关联 mongo 容器 ports: - "1026:1026" # 映射主机端口 1026 到容器端口 1026 command: -dbhost mongo # 指定 MongoDB 主机为 mongo 容器
启动服务:
bashsudo docker-compose up
服务启动后,通过以下命令检查 Orion 是否运行正常:
bashcurl localhost:1026/version
注意:
--nojournal参数不推荐用于生产环境,仅用于加速测试环境中 MongoDB 启动,避免 Orion 容器因数据库未就绪导致的连接问题。
手动管理 MongoDB 实例(本地、远程或其他容器),适用于需要自定义 MongoDB 配置的场景。
若 MongoDB 已在本地主机(非容器)运行,直接启动 Orion 容器并连接本地数据库:
bashsudo docker run -d --name orion1 -p 1026:1026 fiware/orion
localhost:27017 上的 MongoDB(需确保 MongoDB 允许容器访问,如配置 --bind_ip_all)先启动 MongoDB 容器,再启动 Orion 容器并通过 --link 关联:
启动 MongoDB 容器:
bashsudo docker run --name mongodb -d mongo:4.4
启动 Orion 容器并关联 MongoDB:
bashsudo docker run -d --name orion1 --link mongodb:mongodb -p 1026:1026 fiware/orion -dbhost mongodb
指定远程 MongoDB 主机地址(需确保网络可达):
bashsudo docker run -d --name orion1 -p 1026:1026 fiware/orion -dbhost <MongoDB 主机 IP 或域名>
sudo docker stop orion1sudo docker rm orion1(需先停止)适用于需要修改 Orion 源码或 Dockerfile 配置的场景,如定制基础镜像、指定特定版本等。
克隆 Orion 源码:
bashgit clone [***] && cd fiware-orion/docker
(可选)修改 Dockerfile 自定义构建配置。
构建镜像:
bashdocker build -t orion . # 镜像命名为 orion,可自定义(如 org/orion)
运行自定义镜像:
bashsudo docker run --name mongodb -d mongo:4.4 sudo docker run -d --name orion1 --link mongodb:mongodb -p 1026:1026 orion -dbhost mongodb
bashsudo docker run -d --name orion1 -p 1026:1026 orion -dbhost <MongoDB 主机>
可通过 --build-arg 指定构建时变量,调整镜像构建行为:
| 参数 | 描述 | 示例 |
|---|---|---|
IMAGE_TAG | 基础镜像标签 | --build-arg IMAGE_TAG=centos7 |
GIT_NAME | GitHub 仓库用户名 | --build-arg GIT_NAME=fiware-ges |
GIT_REV_ORION | 要构建的 Orion 版本(Git 提交哈希或标签) | --build-arg GIT_REV_ORION=2.3.0 |
CLEAN_DEV_TOOLS | 是否清理构建工具(0 保留,非 0 清理,默认清理) | --build-arg CLEAN_DEV_TOOLS=0 |
启动 Orion 容器时,镜像名称后的参数会传递给 Orion 进程,常用参数:
| 参数 | 描述 | 示例 |
|---|---|---|
-dbhost | MongoDB 主机地址 | -dbhost mongo |
-dbport | MongoDB 端口(默认 27017) | -dbport 27018 |
-logLevel | 日志级别(DEBUG/INFO/WARN/ERROR) | -logLevel DEBUG |
-port | Orion 服务端口(默认 1026) | -port 1027 |
更多参数参考 Orion ***文档。
生产环境:禁用 --nojournal,启用日志和数据持久化(通过 Docker 数据卷挂载 MongoDB 数据目录)
yaml# docker-compose.yml 示例(生产环境) mongo: image: mongo:4.4 volumes: - mongo-data:/data/db # 挂载数据卷,持久化数据 orion: image: fiware/orion links: - mongo ports: - "1026:1026" command: -dbhost mongo volumes: mongo-data: # 定义数据卷
索引优化:为提高查询性能,需为 MongoDB 集合创建索引(以默认数据库 orion 为例):
bashdocker exec <mongo容器ID> mongo --eval ' db = db.getSiblingDB("orion"); db.entities.createIndex({"_id.servicePath": 1, "_id.id": 1, "_id.type": 1}, {unique: true}); db.entities.createIndex({"_id.type": 1}); db.entities.createIndex({"_id.id": 1}); '
默认部署中,MongoDB 数据存储在容器内部,容器删除后数据丢失。生产环境需通过 Docker 数据卷(-v 参数)挂载 MongoDB 数据目录:
bashsudo docker run --name mongodb -d -v /host/path/to/mongo/data:/data/db mongo:4.4
将当前用户添加到 docker 用户组,无需 sudo 即可运行 Docker 命令:
bashsudo usermod -aG docker $USER
(需注销并重新登录生效)
若主机端口 1026 已被占用,可修改端口映射:
bashsudo docker run -d --name orion1 -p 1027:1026 fiware/orion # 主机端口 1027 映射到容器 1026
Orion 默认运行在多租户模式,通过 HTTP 头 Fiware-Service 和 Fiware-ServicePath 隔离不同租户数据。
服务启动后,可通过以下命令验证基本功能:
curl localhost:1026/versionbashcurl -X POST localhost:1026/v2/entities -H "Content-Type: application/json" -d '{ "id": "Room1", "type": "Room", "temperature": { "value": 25.5, "type": "Number" } }'
curl localhost:1026/v2/entities/Room1来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像服务
在 Docker Desktop 配置镜像
Docker Compose 项目配置
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像
Synology 群晖 NAS 配置
飞牛 fnOS 系统配置镜像
极空间 NAS 系统配置服务
爱快 iKuai 路由系统配置
绿联 NAS 系统配置镜像
QNAP 威联通 NAS 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名