一:基于 Docker 的单节点部署方案
1.1:注意点:最好选用云服务器2核4G内存及以上

二:环境准备
2.1: 检查系统版本
确认操作系统版本为 Ubuntu 22.04 LTS:
bash
cat /etc/os-release
2.2 检查内核版本
Docker 需要 3.10 及以上内核版本:
bash
uname -r
2.3 更新软件包索引
bash
sudo apt update
2.4 安装必要工具
bash
sudo apt install -y ca-certificates curl software-properties-common
验证方法:执行 uname -r 确认内核版本 ≥ 3.10
三、安装 Docker
3.1 外网环境一键安装(推荐)
使用阿里云镜像脚本安装 Docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
3.2 内网离线安装方案
无法访问外网时,使用系统自带 docker.io 包
sudo apt install -y docker.io
3.3 设置 Docker 开机自启并启动服务
sudo systemctl enable docker
sudo systemctl start docker
3.4 验证 Docker 安装
sudo docker --version
3.5 安装独立 docker-compose(apt 安装 docker.io 必备)
apt 自带 docker 无内置 compose 插件,需单独安装
sudo apt install -y docker-compose
注意:apt 版使用
docker-compose(连字符),不能用docker compose(空格)
3.6 免 sudo 操作 Docker(当前用户加入 docker 组)
sudo usermod -aG docker $USER && newgrp docker
四、配置 Docker 国内镜像加速
国内拉取官方镜像速度缓慢,配置多镜像源加速
4.1 创建镜像加速配置文件
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json << 'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://registry.cn-hangzhou.aliyuncs.com"
]
}
EOF
4.2 重载配置并重启 Docker
sudo systemctl daemon-reload && sudo systemctl restart docker
4.3 验证镜像加速配置
sudo docker info | grep -A5 "Registry Mirrors"
测试拉取镜像:
sudo docker pull hello-world
五、拉取 ThingsBoard 镜像
采用内置 PostgreSQL 数据库单节点镜像 thingsboard/tb-postgres
5.1 拉取镜像
sudo docker pull thingsboard/tb-postgres
5.2 查看本地镜像列表
sudo docker images
六、启动容器
6.1 创建持久化数据、日志目录并修正权限
容器内运行用户 ID 为 799,必须修改目录权限,否则启动报错
mkdir -p ~/.mytb-data && sudo chown -R 799:799 ~/.mytb-data
mkdir -p ~/.mytb-logs && sudo chown -R 799:799 ~/.mytb-logs
6.2 编写 docker-compose.yml 配置文件
cat > ~/docker-compose.yml << 'EOF'
version: '3.0'
services:
mytb:
restart: always
image: "thingsboard/tb-postgres"
ports:
- "8080:9090" # Web管理后台端口
- "1883:1883" # MQTT设备接入端口
- "7070:7070" # Edge边缘端口
- "5683-5688:5683-5688/udp" # CoAP协议端口
environment:
TB_QUEUE_TYPE: in-memory
volumes:
- ~/.mytb-data:/data
- ~/.mytb-logs:/var/log/thingsboard
EOF
重要说明:容器内部 Web 服务监听 9090,宿主机映射 8080,切勿写成 8080:8080
6.3 后台启动容器
cd ~ && sudo docker-compose up -d
6.4 查看容器运行状态
sudo docker-compose ps
七、验证部署
7.1 查看运行中的容器
sudo docker ps | grep mytb
7.2 实时查看启动日志
出现 Started ThingsBoard Server 代表初始化完成
sudo docker logs -f mytb
7.3 本地检测 Web 服务连通性
curl -I http://localhost:8080
注意:使用云服务器公网IP,8080有可能需要备案,返回 HTTP/1.1 200 代表服务正常
7.4 查看宿主机端口监听
sudo ss -tlnp | grep 8080
7.5 浏览器访问地址
访问地址:http://xx.xx.82.16:28080(8080备案麻烦临时使用28080)

默认账号密码
- 系统管理员:
sysadmin@thingsboard.org/sysadmin - 租户管理员:
tenant@thingsboard.org/tenant - 客户账号:
customer@thingsboard.org/customer
外网访问故障说明
本地 curl 访问正常,外网无法打开页面:
- 云服务器安全组放行 TCP 8080、1883、7070 端口;
- 检查服务器本机防火墙 ufw;
- 部分云服务商需额外配置端口转发 DNAT。
八、常见问题排查
问题 1:Docker 启动失败,拉取镜像报错
现象:Error response from daemon 原因:网络无法连接 Docker Hub 官方仓库 解决:
-
检查服务器 DNS、外网连通性;
-
确认镜像加速配置正常;
-
查看 Docker 服务详细日志
sudo journalctl -xeu docker.service --no-pager | tail -40
问题 2:本地可访问,外网无法访问 Web UI
现象:curl localhost:8080 返回 200,浏览器公网 IP 打不开 解决:
- 云平台安全组放行 TCP 8080 端口;
- 检查本机防火墙状态
sudo ufw status; - 私有云 / IDC 服务器配置端口转发。
问题 3:执行 sudo 提示 unable to resolve host
解决:修改 hosts 绑定主机名
echo '127.0.1.1 $(hostname)' | sudo tee -a /etc/hosts
问题 4:docker compose 命令找不到
现象:docker: 'compose' is not a docker command 原因:apt 安装 docker.io 无内置 compose 插件 解决:安装独立 docker-compose,使用 docker-compose 命令操作。
九、日常运维命令
基础启停
# 停止服务
cd ~ && sudo docker-compose stop
# 重启服务
cd ~ && sudo docker-compose start
# 重启容器(更新配置使用,保留持久化数据)
cd ~ && sudo docker-compose down && sudo docker-compose up -d
彻底清理(数据全部删除,谨慎执行)
sudo docker-compose down -v && sudo rm -rf ~/.mytb-data ~/.mytb-logs
日志查看
# 实时滚动日志
sudo docker-compose logs -f mytb
进入容器内部调试
sudo docker exec -it mytb bash
查看容器资源占用
sudo docker stats mytb
Docker 服务启停
# 停止Docker
sudo systemctl stop docker
# 启动Docker
sudo systemctl start docker
# 重启Docker
sudo systemctl restart docker
# 设置开机自启
sudo systemctl enable docker
服务器开机自动恢复平台
# 开机启动Docker
sudo systemctl start docker
# 启动ThingsBoard容器
cd ~ && sudo docker-compose up -d
更新 ThingsBoard 镜像版本
cd ~ && sudo docker-compose pull && sudo docker-compose up -d
快速操作备忘
# 后台启动
cd ~ && sudo docker-compose up -d
# 停止服务
cd ~ && sudo docker-compose stop
# 查看运行状态
sudo docker-compose ps
# 实时日志
sudo docker-compose logs -f mytb
# 重启Docker
sudo systemctl restart docker
十:服务器租用建议
想高性价比使用建议闲鱼找服务商,轻快简单,本人腾讯云、华为云、移动云、电信云、阿里云都尝试过使用体验好但是贵。