2、环境准备:Ubuntu Server 22.04 LTS安装与配置、Docker与Docker Compose安装、PostgreSQL数据库安装、Redis缓存安装

好,咱们正式开始动手了。

这一章,说白了就是搭地基。地基不稳,后面全白干。我见过太多新手一上来就急着写代码,结果环境配了三天,最后发现是系统版本不对——嗯,这种坑我踩过不止一次。

咱们的目标很明确:一台干净的 Ubuntu Server 22.04,装上 Docker、PostgreSQL 和 Redis。所有组件都用 Docker 跑,方便管理,也方便以后迁移。

2.1 为什么选 Ubuntu Server 22.04 LTS?

我个人习惯用 LTS 版本。22.04 支持到 2027 年,足够咱们的课程周期了。你想想看,如果选个非 LTS 版本,半年后系统提示你升级,那多闹心。

另外,ThingsBoard 官方文档里推荐的也是 Ubuntu 20.04/22.04。跟着官方走,少踩坑。

2.2 安装 Ubuntu Server 22.04

这一步其实不难,但有几个细节要注意。

2.2.1 下载与制作启动盘

  • 去 Ubuntu 官网下载 ubuntu-22.04.3-live-server-amd64.iso
  • 用 Rufus(Windows)或 balenaEtcher(Mac/Linux)写入 U 盘
  • 注意:选「写入为镜像」模式,别选「FAT32 格式化」

2.2.2 安装过程中的关键选项

步骤 建议配置 说明
语言 English 中文终端有时会乱码,我吃过亏
键盘布局 English (US) 除非你习惯其他布局
网络配置 静态 IP 或 DHCP 生产环境建议静态 IP
磁盘分区 Use Entire Disk + LVM 方便以后扩容
SSH 服务 勾选 Install OpenSSH server 远程管理必备
软件包 不选任何 Snap 包 干净一点
我的小技巧:安装时把主机名设成 thingsboard-server,后面看着舒服。

2.2.3 安装后的基础配置

系统装好后,第一件事就是更新。

sudo apt update && sudo apt upgrade -y

然后装几个常用工具:

sudo apt install -y curl wget vim git net-tools
注意:如果你用的是云服务器(比如阿里云、腾讯云),记得在安全组里开放 22 端口。我曾经忘了开,结果连不上 SSH,折腾了半小时才发现。

2.3 安装 Docker 与 Docker Compose

Docker 是咱们的核心工具。ThingsBoard 官方推荐用 Docker 部署,省心。

2.3.1 安装 Docker

官方推荐用脚本安装,简单粗暴:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

装完后把当前用户加入 docker 组,免得每次都要 sudo:

sudo usermod -aG docker $USER

然后退出重新登录,或者执行 newgrp docker 生效。

验证安装:

docker --version
docker run hello-world

看到 Hello from Docker! 就对了。

2.3.2 安装 Docker Compose

Docker Compose 用来编排多容器。我习惯用独立二进制安装,不依赖 Python:

sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

验证:

docker-compose --version
避坑指南:我曾经在 Ubuntu 20.04 上装过 apt 源里的 docker-compose,版本是 1.25,结果跟 ThingsBoard 的 docker-compose.yml 不兼容。所以一定要装最新版。

2.4 安装 PostgreSQL 数据库

ThingsBoard 用 PostgreSQL 存业务数据。咱们用 Docker 跑,干净利落。

2.4.1 拉取镜像并启动

docker run -d \
  --name postgres \
  -e POSTGRES_DB=thingsboard \
  -e POSTGRES_USER=thingsboard \
  -e POSTGRES_PASSWORD=your_password \
  -p 5432:5432 \
  -v postgres_data:/var/lib/postgresql/data \
  postgres:15

解释一下参数:

  • -e POSTGRES_DB:自动创建数据库
  • -v postgres_data:数据持久化,容器删了数据还在
  • postgres:15:我用 15 版,稳定

2.4.2 验证连接

docker exec -it postgres psql -U thingsboard -d thingsboard

看到 thingsboard=# 提示符就成功了。输入 \q 退出。

注意:密码别用太简单的。我见过有人用 123456,结果被扫了端口,数据库被勒索。嗯,真事。

2.5 安装 Redis 缓存

Redis 用来做 ThingsBoard 的缓存和消息队列。没有它,系统响应会慢很多。

2.5.1 拉取镜像并启动

docker run -d \
  --name redis \
  -p 6379:6379 \
  -v redis_data:/data \
  redis:7-alpine

这里用了 7-alpine 版本,体积小,性能好。

2.5.2 验证连接

docker exec -it redis redis-cli ping

返回 PONG 就对了。

我的经验:Redis 默认没有密码,生产环境一定要设密码。在 docker run 命令里加 --requirepass your_redis_password 就行。不过咱们学习阶段,先不设,省事。

2.6 检查所有服务

最后,咱们确认一下所有容器都在跑:

docker ps

应该能看到三个容器:postgres、redis,还有咱们还没启动的 ThingsBoard(下一章再说)。

嗯,到这里,环境就准备好了。你可能会问:「为什么不用 apt 直接装 PostgreSQL 和 Redis?」

我的回答是:用 Docker 统一管理,以后迁移、备份、升级都方便。你想想看,如果哪天要换服务器,直接把 docker-compose.yml 和 volume 拷过去就完事了,多省心。

下一章,咱们正式安装 ThingsBoard,把它跑起来。