目前,我使用命令docker run -p 6030-6042:6030-6042/tcp -p 6030-6040:6030-6040/udp --name taosd tdengine/tdengine启动TDengine服务器,然后在另一个容器中使用docker run --rm -it tdengine/tdengine taos -h <host ip>连接taos shell。它连接ok,但是当将数据插入到表中时,它会导致错误:
Welcome to the TDengine shell from Linux, Client Version:2.0.22.0
Copyright (c) 2020 by TAOS Data, Inc. All rights reserved.
taos> create database if not exists test;
Query OK, 0 of 0 row(s) in database (0.000638s)
taos> use test;
Database changed.
taos> create table if not exists tb1 (ts timestamp, n int);
Query OK, 0 of 0 row(s) in database (0.000880s)
taos> insert into tb1 values (now, 1);
DB error: Unable to resolve FQDN (0.090774s)发布于 2021-12-20 03:07:02
TDengine连接基于FQDN(主机名(如果您熟悉的话)-这需要服务器端点的DNS解析)。
在您的示例中,首先在start:docker run --hostname taosd ...中设置主机名,然后在shell中设置位于容器或主机的echo <your ip> taosd >> /etc/hosts。然后您可以将它与taos -h taosd连接(这里我们使用taosd作为TDengine服务器容器主机名,所有连接都应该使用主机名来解析真正的ip)。
步骤:
码头运行--rm --主机名taosd \ -p 6030-6042:6030-6042/tcp -p 6030-6040:6030-6040/udp \-name taosd -p
docker run -rm -it --add taosd: tdengine/tdengine taos -h taosd
--add-host将在/etc/host中添加dns解析行。
您可以使用外部IP或通过docker inspect taosd |jq '.[0].NetworkSettings.Networks[].IPAddress' -r.获取容器ip。
如果不存在测试,则创建数据库;使用测试;如果不存在tb1,则创建表(ts时间戳,n int);插入到tb1值(现在,1);
全都做完了。
https://stackoverflow.com/questions/70416921
复制相似问题