前言
TDengine 的 Docker 版本 3.4.0.0 可以免费试用。你下载并运行的 Docker 镜像,对应的就是 TDetime 社区版 ,这个版本自带免费许可证,可以永久免费使用。
-
**推荐:**当前广泛使用且较为稳妥的 TDengine Docker 版本:3.4.0.0。
-
规范的镜像名称 :从
3.3.7.0版本开始,TDengine 官方调整了 Docker 镜像的命名规范,社区版镜像统一为tdengine/tsdb。3.4.0.0版本使用新名称,符合官方长期维护的方向,你可以直接使用tdengine/tsdb:3.4.0.0进行拉取。 -
端口完整,功能全面 :该版本的启动命令已经完整包含了
6030(客户端端口)、6041(RESTful 端口)和6060(taosExplorer 可视化工具端口)等核心端口映射,能让你在安装后立刻体验到 TDengine 的完整功能
安装/配置
1.拉取镜像
bash
docker pull tdengine/tsdb:3.4.0.0

2.准备目录
(可选但推荐):为了容器销毁后数据不丢失,建议在宿主机上创建目录用于持久化存储数据和日志。
在 D:\Docker\TDengine 下创建三个子目录,分别用于存放数据、日志和配置文件:
-
D:\Docker\TDengine\data→ 映射容器内的数据目录 -
D:\Docker\TDengine\log→ 映射容器内的日志目录 -
D:\Docker\TDengine\cfg→ 存放自定义的taos.cfg配置文件(可选)
可以手动创建,或使用命令行:
bash
mkdir D:\Docker\TDengine\data, D:\Docker\TDengine\log, D:\Docker\TDengine\cfg -Force


3.准备自定义配置文件(可选)
如果你需要修改 TDengine 的配置参数,可以在 D:\Docker\TDengine\cfg 下创建一个名为 taos.cfg 的文件,并写入所需的配置项。例如:
bash
# 数据保留策略(必须与 docker-compose 中的挂载点一致)
dataDir /var/lib/taos
logDir /var/log/taos
tempDir /tmp
# ---------- 网络配置 ----------
# firstEp # 单节点无需设置,集群时才需要指定第一个节点
# fqdn # 容器环境默认使用容器 hostname,一般无需修改
serverPort 6030 # 服务端口,与映射的容器内端口一致
# ---------- 日志配置(定期清理策略) ----------
logKeepDays 30 # 日志文件保留天数,超过自动删除(默认 0 表示永久保留)
asyncLog 1 # 异步日志(0=关闭,1=开启),提高性能
debugFlag 135 # 日志调试级别(默认 135,一般无需修改)
numOfLogLines 10000000 # 单个日志文件最大行数(默认 10,000,000 行)
logFileCompression 1 # 日志文件是否压缩(1=压缩,0=不压缩)
# ---------- 性能与内存调优 ----------
maxTmrCtrl 512 # 定时器线程数(默认 512)
maxShellConns 50000 # 最大 shell 连接数(默认 50000)
maxConnections 5000 # 最大 TCP 连接数(默认 5000)
numOfCommitThreads 4 # 提交线程数(默认 4)
ratioOfQueryThreads 2 # 查询线程比例(默认 2)
numOfVnodesPerCore 2.0 # 每个 CPU 核心创建的虚拟节点数(默认 2.0)
numOfTasks 1024 # 任务队列长度(默认 1024)
# ---------- 数据存储与保留(数据库级别策略请在创建数据库时指定,全局默认可在此设置) ----------
# 注意:以下参数是创建数据库时的默认值,实际可在 CREATE DATABASE 时覆盖
# defaultKeep 365 # 数据保留天数(默认 365 天)
# defaultDays 10 # 每个数据文件覆盖的天数(默认 10 天)
# defaultMinRows 100 # 文件块最小记录数(默认 100)
# defaultMaxRows 4096 # 文件块最大记录数(默认 4096)
# defaultComp 2 # 压缩标志(默认 2,表示 lz4 压缩)
# ---------- 其他可选配置 ----------
monitor 0 # 是否启用监控(0=关闭,1=开启),开启会额外记录监控数据
monitorFreq 30 # 监控采集频率(秒)
httpMaxThreads 100 # HTTP 服务最大线程数(影响 RESTful API 并发)
httpEnableRecord 0 # 是否记录 HTTP 请求日志(0=关闭,1=开启)
-
日志定期清理 :通过
logKeepDays 30实现日志自动保留 30 天,超期文件会被删除。同时asyncLog 1启用异步写入,减少磁盘 I/O 压力。 -
数据保留策略 :数据保留(如 KEEP 天数)是在创建数据库时指定的,全局默认值可通过
defaultKeep等参数设置,但推荐在创建数据库时明确指定(例如CREATE DATABASE test KEEP 365)。 -
临时目录 :
tempDir指向/tmp,如果挂载了独立卷(如D:/Docker/TDengine/tmp),则容器内/tmp对应宿主机的该目录,保证临时数据持久化且空间充足。

注意 :dataDir 和 logDir 应保持为容器内的默认路径,因为是通过卷挂载将本地目录映射到这些位置的。如果修改了这些路径,需要相应调整挂载点。
4. docker-compose.yml 文件内容
使用 Docker Compose 来管理 TDengine 容器,这样配置更清晰、易于维护。以下是一个适用于 Windows 的 docker-compose.yml 文件模板,它包含了之前讨论的所有端口映射和数据卷挂载。
将以下内容保存为 docker-compose.yml 文件(例如放在 D:\Docker\TDengine\ 目录下):
XML
version: '3.8'
services:
tdengine:
image: tdengine/tsdb:3.4.0.0
container_name: tdengine
restart: unless-stopped
ports:
# 核心端口映射(左侧宿主机端口可根据需要调整)
- "6030:6030" # 客户端连接端口(TCP)
- "6041:6041" # RESTful API 端口(HTTP)
- "6043:6043" # taosAdapter 或其他组件(TCP)
- "6044-6049:6044-6049" # 内部通信(TCP)
- "6044-6045:6044-6045/udp" # 内部通信(UDP)
- "6060:6060" # taosExplorer 可视化界面(HTTP)
environment:
- TZ=Asia/Shanghai # 时区设置
volumes:
# 数据目录(持久化)
- D:/Docker/TDengine/data:/var/lib/taos
# 日志目录(持久化)
- D:/Docker/TDengine/log:/var/log/taos
# 自定义配置文件(必须提前创建好 taos.cfg)
- D:/Docker/TDengine/cfg/taos.cfg:/etc/taos/taos.cfg
# 可选:临时文件目录(避免容器内 /tmp 空间不足,生产环境需挂载)
- D:/Docker/TDengine/tmp:/tmp
# 资源限制(根据实际情况取消注释并调整)
# deploy:
# resources:
# limits:
# memory: 4G
# cpus: '2'
# 健康检查(判断服务是否就绪)
healthcheck:
test: ["CMD", "taos", "-s", "show databases"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
重要说明:
-
请提前在
D:/Docker/TDengine/cfg/目录下创建taos.cfg文件(内容见下一节)。 -
临时目录
/tmp如果挂载到宿主机,建议分配足够空间(例如 10GB+),避免因临时数据撑满容器层。 -
若宿主机端口被占用,可修改左侧端口号(例如
6041:6041改为6042:6041),客户端连接时需相应调整。
实例如下:

5. 创建Docker 容器
bash
# 进入目录(打开 PowerShell 或 CMD 或Docker命令行,切换到 D:\Docker\TDengine 目录)
cd D:\Docker\TDengine
# 启动容器
docker-compose up -d
# 查看容器状态
docker-compose ps
# 查看日志
docker-compose logs -f
# 停止容器(加上 -v 会删除卷,请谨慎使用)
docker-compose down
6. 注意事项⚠️
-
路径格式 :Windows 路径在 YAML 中必须使用正斜杠 (
/)或双反斜杠 (\\)。上述示例使用了正斜杠D:/Docker/TDengine/data,这是兼容性最好的写法。 -
配置文件 :如果你不需要自定义 TDengine 配置,可以直接删除
volumes中挂载taos.cfg的那一行。 -
端口冲突 :确保
6030、6041、6060等端口没有被宿主机上的其他程序占用。 -
Docker Desktop 设置 :请确保 Docker Desktop 的 Settings → Resources → File Sharing 中已添加
D:盘,否则挂载会失败。 -
防火墙 :如果需要从其他机器访问 TDengine,记得在 Windows 防火墙中放行上述端口(尤其是
6030和6041)。
7.验证部署
容器启动后,你可以通过浏览器访问 http://localhost:6060 打开 taosExplorer 可视化界面,默认用户名/密码为 root/taosdata。也可以通过以下命令测试 RESTful API:
bash
curl -u root:taosdata -d "show databases" 127.0.0.1:6041/rest/sql
如果返回数据库列表,说明一切正常。

密码修改
通过 taos 命令行修改(推荐)
-
进入 TDengine 容器(如果你是用 Docker 运行的):
bashdocker exec -it tdengine bash -
启动 taos 客户端:
bashtaos -
执行修改密码的 SQL 命令 :
在
taos>提示符下输入:bashALTER USER root PASS 'your_new_password';将
your_new_password替换为你想要设置的新密码。密码需要符合复杂度要求(通常长度至少 8 位,包含字母和数字)。 -
退出客户端:
sqlQUIT; -
测试新密码 :
下次连接时,需要使用新密码:
bashtaos -u root -p your_new_password