Eclipse Hono是一个开源IoT设备连接平台,提供统一的服务接口,用于将IoT设备连接到云端或本地后端系统。本镜像为Eclipse Hono的HTTP协议适配器组件,主要功能是允许IoT设备通过HTTP协议向Hono后端上传遥测数据和事件数据,实现设备与后端系统的双向通信。
从Docker镜像仓库拉取最新版本镜像:
bashdocker pull eclipse/hono-http-adapter:latest
通过以下命令启动HTTP适配器容器,需根据实际环境配置环境变量:
bashdocker run -d \ --name hono-http-adapter \ -p 8080:8080 \ # HTTP端口映射(默认8080) -e HONO_AMQP_HOST=hono-amqp-adapter \ # Hono AMQP适配器主机名/IP -e HONO_AMQP_PORT=5672 \ # Hono AMQP适配器端口 -e HONO_AUTH_HOST=hono-auth \ # Hono认证服务主机名/IP -e HONO_AUTH_PORT=5671 \ # Hono认证服务端口 -e HTTP_ADAPTER_PORT=8080 \ # HTTP适配器监听端口 eclipse/hono-http-adapter:latest
HTTP适配器通过环境变量配置与后端服务的连接及自身运行参数,常用配置如下表:
| 环境变量名 | 描述 | 默认值 | 示例值 |
|---|---|---|---|
HONO_AMQP_HOST | Hono AMQP适配器服务主机名/IP | localhost | hono-amqp-adapter |
HONO_AMQP_PORT | Hono AMQP适配器服务端口 | 5672 | 5672 |
HONO_AUTH_HOST | Hono认证服务(Ditto或Keycloak)主机 | localhost | hono-auth-service |
HONO_AUTH_PORT | Hono认证服务端口 | 5671 | 5671 |
HTTP_ADAPTER_PORT | HTTP适配器监听端口 | 8080 | 8080 |
HONO_TENANT_ID | 默认租户ID(设备未指定时使用) | 无 | my-tenant |
TLS_ENABLED | 是否启用HTTPS(true/false) | false | true |
TLS_KEY_STORE_PATH | TLS密钥库路径(启用HTTPS时必填) | 无 | /etc/hono/tls/keystore.p12 |
TLS_KEY_STORE_PASSWORD | TLS密钥库密码(启用HTTPS时必填) | 无 | changeit |
以下为与Hono核心服务(AMQP适配器、认证服务)协同部署的docker-compose.yml示例:
yamlversion: '3.8' services: hono-http-adapter: image: eclipse/hono-http-adapter:latest ports: - "8080:8080" environment: - HONO_AMQP_HOST=hono-amqp-adapter - HONO_AMQP_PORT=5672 - HONO_AUTH_HOST=hono-auth - HONO_AUTH_PORT=5671 - HTTP_ADAPTER_PORT=8080 - HONO_TENANT_ID=default-tenant depends_on: - hono-amqp-adapter - hono-auth hono-amqp-adapter: image: eclipse/hono-amqp-adapter:latest # AMQP适配器配置(省略,参考其***文档) hono-auth: image: eclipse/hono-auth:latest # 认证服务配置(省略,参考其***文档)
设备通过HTTP POST请求向适配器发送数据,需在请求头中指定租户、设备标识及认证信息。
请求URL:http://<adapter-ip>:<port>/telemetry
请求头:
Host: 适配器主机Content-Type: application/json(或其他数据格式)Authorization: Basic <base64(tenant:device@password)>(Basic认证)示例(curl命令):
bash# 设备认证信息:租户=my-tenant,设备ID=device-001,密码=secret # Basic认证字符串:echo -n "my-tenant:device-001@secret" | base64 → bXktdGVuYW50OmRldmljZS0wMDFAc2VjcmV0 curl -X POST [***] \ -H "Content-Type: application/json" \ -H "Authorization: Basic bXktdGVuYW50OmRldmljZS0wMDFAc2VjcmV0" \ -d '{"temperature": 23.5, "humidity": 60}'
请求URL:http://<adapter-ip>:<port>/events
请求头:与遥测数据上传相同
请求体:事件数据(如设备状态变更信息)
示例(curl命令):
bashcurl -X POST [***] \ -H "Content-Type: application/json" \ -H "Authorization: Basic bXktdGVuYW50OmRldmljZS0wMDFAc2VjcmV0" \ -d '{"event": "door_opened", "timestamp": "2024-05-20T10:30:00Z"}'
HTTP_ADAPTER_PORT(默认8080),需通过-p参数映射至其他端口(如-p 8081:8080)。TLS_ENABLED=true及相关密钥库参数。HTTP_ADAPTER_PORT端口开放;验证容器启动日志(docker logs <container-id>)是否有端口绑定错误。HONO_AMQP_HOST和HONO_AMQP_PORT配置正确;检查Hono AMQP适配器是否正常运行。Authorization头中的租户、设备ID及密码是否正确。来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 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 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429