基于docker部署thingsboard+tb-gateway+emqx详细教程

本文档详述了一核两G CentOS服务器上使用Docker部署ThingsBoard、tb-gateway和emqx的过程,包括解决postgres权限问题、配置外部数据库、启动ThingsBoard镜像以及安装和配置tb-gateway和emqx。教程中还分享了遇到的问题及解决方案,适合想要在有限资源环境下搭建物联网平台的读者参考。

前言

这篇教程其实拖了好久了,十月份的时候经过连续几个晚上的踩坑,终于把整个流程跑通啦。但后面由于自己太懒了,一直没能抽时间把这篇教程记录下来,于是便拖到了现在 (。・ω・。)

拒绝拖延,从我做起。记录下这篇博客,希望能帮到有需要的小伙伴~

环境

  • 1 核 2G Centos 腾讯云服务器
  • postgres 13.0 数据库
  • thingsboard 3.2.1
  • tb-gateway 最新版
  • emqx 4.0

这里需要注意一下,经过博主测试,1 核 2G 的配置是最低最低的极限配置,实际上,在该配置下用 docker 起四个体积不小的容器,打开网页已经能感受到明显的卡顿了。所以建议有条件的小伙伴升级到 2 核 4G 的配置比较好,这里博主就用 1 核 2G 的配置进行演示。

安装 postgres 数据库

根据 thingsboard 的官方文档,thingsboard 的 docker 镜像里是带了 postgres 数据库的,如下图

thingsboard的docker镜像

因此理论上是不需要单独在安装 postgres 的。但博主在尝试的过程中,碰到了 postgres 的权限问题,即用 thingsboard 镜像里面自带的 postgres 数据库,数据库的初始化总是失败。导致后面 thingsboard 在启动过程中因为在数据库中找不到对应的表,直接就启动失败,退出了。

在查询了很多资料后,在 stackoverflow 上找到了解决办法。

ThingsBoard Docker container deploy resulting in PSQLException

stackoverflow上的解决办法

解决办法就是不用 thingsboard 镜像内自带的 postgres 数据库,在环境变量中将连接的数据库地址指向我们自己创建的 postgres 数据库。所以第一步就是用 docker 去创建一个 postgres 数据库。

拉取指定版本的 postgres 镜像

docker pull postgres:13.0

拉取最新的 postgres 镜像

拉取完后查看镜像

docker images

拉取完后查看镜像

创建并启动容器

docker run --name postgres13 -e POSTGRES_PASSWORD=postgres -p 5432:5432 -v /root/thingsboard/pgdata:/var/lib/postgresql/data -d postgres:13.0

下面解释下这些参数的意思

  • –name:将容器命名为一个好记的名字
  • -e:设置环境变量。这里设置数据库的密码是 postgres
  • -p:进行端口映射。左边是服务器的端口,右边是容器内的端口
  • -v:进行目录映射。即将服务器的 /root/thingsboard/pgdata 与容器内部的 /var/lib/postgresql/data<
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Apple_Coco

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值