如何在Docker上运行的Thingboard中连接cassandra

时间:2019-03-22 07:41:17

标签: docker cassandra thingsboard

我正在使用东西板(在docker上),但我还希望能够连接到东西板docker上的cassandra。我想要的是检查表结构和数据本身。

reference installing thingboard on docker运行起,没有任何-p 9042:9042配置。

因此,我已将其添加到docker run命令(例如,docker run -p 9090:9090 -p 1883:1883 -p 9042:9042 -p 5683:5683 / udp -v / Thingsboard / .mytb-data:/ data .....)。但是,我无法将9042上的telnet事件发送到我的主主机。

然后,我在thingboard docker(/ etc / cassandra)中检查了cassandra配置文件。我发现 rpc_address 的值为localhost,并且 broadcast_rpc_address 没有任何行。我不确定应该输入什么配置文件,因为它是docker容器。

这是我的端口设置(我在下面添加了屏幕截图):

0.0.0.0:1883->1883/tcp, 0.0.0.0:9042->9042/tcp, 0.0.0.0:9090->9090/tcp, 0.0.0.0:5683->5683/udp

CONTAINER ID -> ac2b6e2316a7 
IMAGE      -> thingsboard/tb-cassandra     
COMMAND    -> "start-tb.sh"    
PORTS      -> 0.0.0.0:1883->1883/tcp, 0.0.0.0:9042->9042/tcp, 0.0.0.0:9090->9090/tcp, 0.0.0.0:5683->5683/udp  

ports on docker run

谢谢

1 个答案:

答案 0 :(得分:0)

根据 thingsboard / tb-cassandra Dockerfile,Cassandra在默认配置下运行,并在localhost上监听。这就是为什么它不接受来自Docker主机的任何连接的原因。

要通过cqlsh连接到Cassandra,您需要使用以下命令登录到容器:

docker exec -it <container_id> /bin/bash

然后您可以通过发出cqlsh命令来连接到Cassandra。