连接到 Apache Cassandra 的 DataStax Distribution 的容器
Posted
技术标签:
【中文标题】连接到 Apache Cassandra 的 DataStax Distribution 的容器【英文标题】:Connection to container of DataStax Distribution of Apache Cassandra 【发布时间】:2020-01-30 12:47:21 【问题描述】:我创建了 Apache Cassandra (DDAC) 的 DataStax Distribution 的 Docker 容器:
docker pull datastax/ddac
docker run -e DS_LICENSE=accept --name ddac -d datastax/ddac
docker ps
通过 Datastax DevCenter 连接到节点时出现错误:
尝试通过 7000 和 7199 端口连接时出现相同的错误。
如何连接部署在 docker 容器中的 DDAC 节点?
更新
为了以防万一,我禁用了 Windows 防火墙。
使用docker run -e DS_LICENSE=accept --name ddac -p 9042:9042 -d datastax/ddac
得到同样的错误:
无法访问指定的主机。已尝试的所有主机 查询失败(尝试:localhost/0:0:0:0:0:0:0:1:9042 (com.datastax.driver.core.exceptions.TransportException: [localhost/0:0:0:0:0:0:0:1] 频道已关闭), 本地主机/127.0.0.1:9042 (com.datastax.driver.core.exceptions.TransportException: [localhost/127.0.0.1] 频道已关闭)) [localhost/0:0:0:0:0:0:0:1] 频道已关闭 [localhost/127.0.0.1] 频道已关闭
【问题讨论】:
这是另一个错误 - 现在 DDAC 已正确公开...我认为 DevCenter 与较新的 Cassandra 版本不兼容 - 它不再维护。 【参考方案1】:这是因为容器有自己的 IP,您需要连接到它 - 您可以使用
获取容器的 IPdocker inspect -f 'range .NetworkSettings.Networks.IPAddressend' ddac
或在主机上公开 Cassandra 端口,以便您可以通过 localhost 进行连接 - 这是通过 docker run
的 -p
标志完成的:
docker run -e DS_LICENSE=accept --name ddac --rm -p 9042:9042 -d datastax/ddac
【讨论】:
以上是关于连接到 Apache Cassandra 的 DataStax Distribution 的容器的主要内容,如果未能解决你的问题,请参考以下文章
Python 无法通过 Docker 连接到 Cassandra
Cassandra - Dev中心无法连接到Cassandra集群的所有3个节点
无法连接到 python 上的 cassandra(使用 cassandra-driver