本指南将帮助你在Windows上使用Docker安装和启动ThingsBoard。
先决条件
运行
根据所使用的数据库有三种类型的ThingsBoard单实例docker映像:
-
thingsboard/tb-postgres - ThingsBoard与PostgreSQL数据库的单实例
对于具有至少1GB内存的小型服务器的推荐选项建议使用2-4GB。
-
thingsboard/tb-cassandra - 具有Cassandra数据库的ThingsBoard的单个实例。
最高性能和推荐的选项但至少需要4GB的RAM建议使用8GB。
-
thingsboard/tb - 具有嵌入式HSQLDB数据库的ThingsBoard的单个实例。
注意: 不建议用于任何评估或生产用途仅用于开发目的和自动测试。
在此说明中将使用thingsboard/tb-postgres
镜像你可以选择其他具有不同数据库的镜像(请参见上文)。
Windows用户应将Docker托管卷用于ThingsBoard数据库。
在执行docker run命令之前创建docker卷(例如mytb-data
):
打开”Docker Quickstart Terminal”。执行以下命令以创建Docker卷:
1
2
docker volume create mytb-data
docker volume create mytb-logs
选择消息队列服务
ThingsBoard使用消息系统存储服务之间的通信,请正确选择队列?
-
内存 适用于开发环境(开发)
-
Kafka 适用于生产环境(集群)
-
RabbitMQ 适用生产环境(单体)
-
AWS SQS 适用生产环境(AWS公有云)
-
Google发布/订阅 适用生产环境(Google公有云)
-
Azure服务总线 适用生产环境(Azure公有云)
-
Confluent云 适用于生产环境(托管)
ThingsBoard默认使用内存队列服务无需额外设置。 创建docker compose文件:
将以下行添加到yml文件
|
Kafka安装Apache Kafka是一个开源的流式数据处理平台。 创建docker compose文件:
Add the following line to the yml file.
|
AWS SQS配置首先需要创建AWS账户然后访问AWS SQS服务。 使用此说明创建AWS SQS服务凭证。
创建docker compose文件:
添加配置将”YOUR_KEY”和”YOUR_SECRET”替换为真实的AWS用户凭证并将”YOUR_REGION”替换成AWS SQS帐户区域:
可以使用UI更新默认规则引擎队列配置(轮询间隔和分区)有关ThingsBoard规则引擎队列的更多信息请参阅文档。 |
Google发布/订阅配置创建一个Google帐户并访问发布/订阅服务。 使用此说明创建一个项目并使用发布/订阅服务。 使用此说明创建服务帐户凭据并编辑角色或管理员后保存json凭据步骤9的文件此处。 创建docker compose文件:
添加下面配置内容使用真正用户密码替换“YOUR_PROJECT_ID”, “YOUR_SERVICE_ACCOUNT”:
可以使用UI更新默认规则引擎队列配置(轮询间隔和分区)有关ThingsBoard规则引擎队列的更多信息请参阅文档。 |
Azure服务总线配置创建Azure帐户并访问Azure服务总线。 通过使用说明了解并使用总线服务。 使用说明创建共享访问签名。 创建docker compose文件:
添加下面配置内容使用真正的服务总线名称空间替换”YOUR_NAMESPACE_NAME”和”YOUR_SAS_KEY_NAME”及”YOUR_SAS_KEY”:
可以使用UI更新默认规则引擎队列配置(轮询间隔和分区)有关ThingsBoard规则引擎队列的更多信息请参阅文档。 |
RabbitMQ安装你可以使用官方文档安装RabbitMQ或按照以下说明: 创建docker compose文件:
将以下行添加到配置文件将“YOUR_USERNAME”和“YOUR_PASSWORD”替换为真实的信息将“localhost”和“5672”替换为真实的RabbitMQ主机和端口:
|
Confluent配置你应该创建一个帐户后访问Confluent云然后创建一个Kafka集群和 API Key。 创建docker compose文件:
添加下面配置内容使用真正的Confluent云服务器地址替换”CLUSTER_API_KEY”, “CLUSTER_API_SECRET”和”localhost:9092”:
{: .copy-code}\ 可以使用UI更新默认规则引擎队列配置(轮询间隔和分区)有关ThingsBoard规则引擎队列的更多信息请参阅文档。 |
说明:
docker run
- 运行容器-it
- 将终端会话与当前ThingsBoard进程输出连接8080:9090
- 将本地端口8080转发至HTTP端口90901883:1883
- 将本地端口1883转发至MQTT端口18835683:5683
- 将本地端口5683转发至MQTT端口5683~/.mytb-data:/data
- 将主机的目录~/.mytb-data
挂载到ThingsBoard数据目录~/.mytb-logs:/var/log/thingsboard
- 将主机的目录~/.mytb-logs
挂载到ThingsBoard日志目录mytb
- 计算机本地名称restart: always
- 在系统重新启动的情况下自动启动ThingsBoard在出现故障的情况下自动重新启动ThingsBoard。image: thingsboard/tb-postgres
- docker镜像也可以是thingsboard/tb-cassandra
或thingsboard/tb
在包含该文件的目录终端中执行以下命令启动此docker compos:docker-compose.yml
1
2
3
docker compose pull
docker compose up -d
docker compose logs -f mytb
为了从Windows计算机上的外部IP/主机访问必需的资源请执行以下命令:
1
2
3
4
5
6
7
8
9
10
set PATH=%PATH%;"C:\Program Files\Oracle\VirtualBox"
VBoxManage controlvm "default" natpf1 "tcp-port8080,tcp,,8080,,9090"
VBoxManage controlvm "default" natpf1 "tcp-port1883,tcp,,1883,,1883"
VBoxManage controlvm "default" natpf1 "tcp-port7070,tcp,,7070,,7070"
VBoxManage controlvm "default" natpf1 "udp-port5683,udp,,5683,,5683"
VBoxManage controlvm "default" natpf1 "udp-port5684,udp,,5684,,5684"
VBoxManage controlvm "default" natpf1 "udp-port5685,udp,,5685,,5685"
VBoxManage controlvm "default" natpf1 "udp-port5686,udp,,5686,,5686"
VBoxManage controlvm "default" natpf1 "udp-port5687,udp,,5687,,5687"
VBoxManage controlvm "default" natpf1 "udp-port5688,udp,,5688,,5688"
说明:
C:\Program Files\Oracle\VirtualBox
- VirtualBox安装目录的路径
执行完命令后你可以http://{your-host-ip}:8080
在浏览器中打开(例如http://localhost:8080
)。
使用以下默认凭据:
- System Administrator: sysadmin@thingsboard.org / sysadmin
- Tenant Administrator: tenant@thingsboard.org / tenant
- Customer User: customer@thingsboard.org / customer
可以在帐户详情页面中更改每个帐户的密码。
分离、停止和启动
你可以使用Ctrl-p
Ctrl-q
与会话终端分离容器将继续在后台运行。
如果出现任何问题可以检查服务日志中的错误例如:要查看ThingsBoard容器日志。
请执行以下命令:
1
docker compose logs -f mytb
停止容器:
1
docker compose stop mytb
启动容器:
1
docker compose start mytb
升级
更新最新镜像命令:
1
2
3
4
5
$ docker pull thingsboard/tb-postgres
$ docker compose stop
$ docker run -it -v mytb-data:/data --rm thingsboard/tb-postgres upgrade-tb.sh
$ docker compose rm mytb
$ docker compose up
注意: 如果你使用不同的数据库则在所有命令中将映像名称从更改为thingsboard/tb-postgres
至thingsboard/tb-cassandra
或thingsboard/tb
。
注意: 将主机的目录替换为~/.mytb-data
容器创建期间使用的目录。
故障排查
DNS问题
注意:如果你发现与DNS问题相关的错误,例如
1
127.0.1.1:53: cannot unmarshal DNS message
你可以配置系统以使用Google公用DNS服务
下一步
-
入门指南 - 快速学习ThingsBoard相关功能。
-
连接设备 - 学习如何根据你的连接方式或解决方案连接设备。
-
可 视 化 - 学习如何配置复杂的ThingsBoard仪表板说明。
-
数据处理 - 学习如何使用ThingsBoard规则引擎。
-
数据分析 - 学习如何使用规则引擎执行基本的分析任务。
-
硬件样品 - 学习如何将各种硬件平台连接到ThingsBoard。
-
高级功能 - 学习高级ThingsBoard功能。
-
开发指南 - 学习ThingsBoard中的贡献和开发。