时序数据库(社区版)TDengine TSDB(安装/Docker版本)

前言

TDengine 的 Docker 版本 3.4.0.0 可以免费试用。你下载并运行的 Docker 镜像,对应的就是 TDetime 社区版 ,这个版本自带免费许可证,可以永久免费使用。

  • **推荐:**当前广泛使用且较为稳妥的 TDengine Docker 版本:3.4.0.0。

  • 规范的镜像名称 :从 3.3.7.0 版本开始,TDengine 官方调整了 Docker 镜像的命名规范,社区版镜像统一为 tdengine/tsdb3.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 对应宿主机的该目录,保证临时数据持久化且空间充足。

注意dataDirlogDir 应保持为容器内的默认路径,因为是通过卷挂载将本地目录映射到这些位置的。如果修改了这些路径,需要相应调整挂载点。

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 的那一行。

  • 端口冲突 :确保 603060416060 等端口没有被宿主机上的其他程序占用。

  • Docker Desktop 设置 :请确保 Docker Desktop 的 Settings → Resources → File Sharing 中已添加 D: 盘,否则挂载会失败。

  • 防火墙 :如果需要从其他机器访问 TDengine,记得在 Windows 防火墙中放行上述端口(尤其是 60306041)。

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 命令行修改(推荐)

  1. 进入 TDengine 容器(如果你是用 Docker 运行的):

    bash 复制代码
    docker exec -it tdengine bash
  2. 启动 taos 客户端

    bash 复制代码
    taos
  3. 执行修改密码的 SQL 命令

    taos> 提示符下输入:

    bash 复制代码
    ALTER USER root PASS 'your_new_password';

    your_new_password 替换为你想要设置的新密码。密码需要符合复杂度要求(通常长度至少 8 位,包含字母和数字)。

  4. 退出客户端

    sql 复制代码
    QUIT;
  5. 测试新密码

    下次连接时,需要使用新密码:

    bash 复制代码
    taos -u root -p your_new_password
    复制代码
相关推荐
小王不爱笑1322 小时前
深入浅出 Docker 核心知识点,解锁容器化技术精髓
java·spring boot·docker
可涵不会debug2 小时前
时序数据库选型指南:Apache IoTDB——大数据时代的优选方案
apache·时序数据库·iotdb
user_admin_god2 小时前
服务器安装向量数据库-Docker版本
服务器·数据库·docker
张道宁11 小时前
Windows 环境下 Docker 部署 YOLOv8 并集成 Spring Boot 完整指南
windows·yolo·docker
lpfasd12316 小时前
Kubernetes (K8s) 底层早已不再直接使用 Docker 引擎了
java·docker·kubernetes
margu_16818 小时前
【Docker】nscenter命令详解
运维·docker·容器
内网渗透20 小时前
Komari 部署教程:无数据库、单文件、Docker 一键启动的监控工具
数据库·docker·容器·内网穿透·cpolar·远程办公·komari
新猿易码20 小时前
Docker 安装 MySQL 5.7.44(Mac M4 适配版)
mysql·docker
新猿易码20 小时前
mac(arm架构) 使用docker安装Tomcat 8 + JRE 8
docker·tomcat