Docker安装失败,程序不执行

【TDengine 使用环境】
生产环境 /测试/ Poc/预生产环境

【TDengine 版本】V3.4.0

【操作系统以及版本】

NAME=“openEuler”
VERSION=“22.03 (LTS-SP3)”
ID=“openEuler”
VERSION_ID=“22.03”
PRETTY_NAME=“openEuler 22.03 (LTS-SP3)”
ANSI_COLOR=“0;31”

【部署方式】容器

【集群节点数】

【集群副本数】

【描述业务影响】

【问题复现路径/shan】做过哪些操作出现的问题

【遇到的问题:问题现象及影响】

docker run -d --network=host --restart=always --name taos tdengine/tsdb

docker容器中日志显示异常,一直不往下执行。未发现啥报错信息

REPOSITORY TAG IMAGE ID CREATED SIZE

tdengine/tsdb latest afbae7081023 11 days ago 823MB

/var/log/taos 目录下

image

image

docker容器内部执行top命令

【资源配置】

【报错完整截图】(不要大段的粘贴报错代码,论坛直接看报错代码不直观)

cat /var/log/taos/taosdlog* | grep ERROR
过滤这个看有什么错误。

或 进入容器中,直接手工执行 taosd ,看看输出有什么信息。

cat /var/log/taos/taosdlog* | grep ERROR
是没有任何打印的。

执行taosd

image

手工执行 taosd 就仅仅输出了这4行信息吗?

是的。然后刚刚发现一个问题,当服务器打开外网,就能安装成功,一旦是内网环境,无法连接外网就会卡住。是采用离线安装的,没打开外网

taosd 服务运行,不需要有外网呀。不太清楚你们的环境是什么情况。

我也纳闷,但是如果没有外网,就不会往下执行,有外网就会继续执行。

手动在容器内部执行taosd,只打印前面几行日志,然后就没动静了,也不报错。

不太确认是不是官方镜像必须要连接外网访问什么东西,才能继续执行

我手动启动这个脚本,发现卡在这一步不动了

问题解决了,是hostname的问题。

内网机器没有外网,使用的hostname不是localhost。

是一个自定义的hostname,在/etc/hosts 中把自定义的hostname 配置到127.0.0.1 后面就可以了。

TDengine 使用系统的 hostnamefqdn

# 在容器内执行 

hostname # 比如输出 my-tdengine 

cat /etc/hosts # 是否包含 127.0.0.1 my-tdengine ?

echo "127.0.0.1 $(hostname)" >> /etc/hosts

但是在taos.cfg中配置的是

fqdn localhost

但是实际上还是被hostname影响到了。

为什么会发生这种情况

我猜测应该是taosd -C的默认行为有关系,哪怕在配置文件中修改了fqdn也会读取hostname作为首次执行的配置

为什么连接外网是可行的,因为在配置外网的过程中,hostname是可以被识别的