docker部署TDengine taosDb实践和踩坑记录-win11版本

一、daocker部署TDengine

1)配置文件方式启动

docker部署方法我采用的是docker-compose.yml文件的方式,参考了,官方给出的docker集群部署:(https://docs.taosdata.com/deployment/docker/)
我是单节点部署,配置如下:

  taosdb:
    container_name: dta-taos-dev
    image: tdengine/tdengine:3.0.1.4
    environment:
      TAOS_FQDN: "td-1"
      TAOS_FIRST_EP: "td-1"
    volumes:
      - ./taos/dnode/data:/var/lib/taos
      - ./taos/dnode/log:/var/log/taos
    ports:
      - "6030:6030"
      - "6041:6041"
    restart: always

environment:推荐配置。这样可以直接达到修改docker.cfg文件中的参数:
fqdn、firstEp的目的。
实际上这是官方给出的docker容器启动环境配置参数。
如果没有配置,容器启动后,默认的fqdn是hostname(多实例部署时,就得手动修改了。怎么修改docker容器中的文件,对我来说,至今是个谜,docker容器中vi 文件,无法执行。o(╥﹏╥)o 会的大神请指点指点小弟我。)
启动指令:docker-compose up -d

2)踩坑之——各种检查
1、容器是否启动成功

常见错误:因为启动文件暴露了文件映射,在本地会有上一次容器运行的文件dnode.json里面有容器id。那么再次 up -d时会新生成容器,但是文件映射目录是一样的,DTengine会无法正常启动。

2、此时本地dnode.json会记录fqdn

在这里插入图片描述

fqdn和我们指定的一致。配置生效!
再查看docker容器中的hosts和hostname:
在这里插入图片描述
发现了吗?
hostname是容器id前缀,而不是td-1!
但是hosts里面已经配置了td-1和127.0.01的映射!并且将hostname和容器ip做了映射。

再查看配置文件taos.cfg,发现配置文件里面fqdn 还是默认配置。
在这里插入图片描述

二、在容器中连接DTengine

因为满足了DTengine说的条件,必须配置FQDN,虽然hostname不是td-1,我们试试能不能访问:
在这里插入图片描述
容器中可以完美访问。
那我们直接运行taos,省略了什么?对,省略了hostnmae。我们试试用ip和td-1访问:

td-1可以访问:
在这里插入图片描述
127.0.0.1也可以访问:
甚至,直接用容器ip也可以访问。
在这里插入图片描述
其实,这都说得过去。毕竟是在容器内部,毕竟已经配置了hosts。

三、容器外访问TDengine

容器中访问看起来很顺利,那容器外访问怎么样呢?

打开我本地已经安装的TDengine客户端 Taso shell (版本是3.0.7.1),而容器中的TDengine是3.0.1.4(小于我的客户端版本)。
发现,居然访问不了。直接报错,连接不上服务器!!!

那我,改成3.0.1.4客户端试试:
在这里插入图片描述
建立连接失败,(虽然看起来进入到 taos>指令了,这应该是个bug,高版本已经改了。)

思考:那我们直接输入toas,是忽略了什么?

对,我们忽略了ip。第二节,我们在容器内就用不同的ip都访问过,都能连接成功,那我们改用那些ip和fqdn连接试试:
在这里插入图片描述

发现了吗?127.0.0.1 居然可以访问到,[我觉得:大概率是因为容器内部hosts中已经配置了127.0.0.1 和 td-1的映射 (不一定对哦)]。

而省略 -h是访问不到的(这是一个谜,谁能告诉我。我也不理解!)。

而容器外主机上,我们并没有配置 FQDN啊,所以访问不到容器中的TDengine服务端。
配置C:\Windows\System32\drivers\etc 目录下的hosts文件

127.0.0.1       td-1

再用taos连接,还是不成功。见鬼,我也不知道怎么就不行!!!
在这里插入图片描述

改用 taos -h td-1,就可以:
在这里插入图片描述
完美,可以像在容器中那样,访问到服务端了。

四、总结

1、Taos shell连接TDengine有三种方式:

1)taos
2) taos -h ip - port
3)taos -h fqdn
如果报错:Failed to check Server Edition, Reason:0x8000000b:Unable to establish connection
请换个方式连接。总有一款适合你!

2、宿主机访问:

如果是容器部署的话,想再宿主机上访问容器内部TDengine服务,可以直接用 taos -h 127.0.0.1访问,也可以在宿主机上也配置容器中指定FQDN。

下一步,Linux部署,敬请期待!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值