连接到 Apache Cassandra 的 DataStax 分发容器

Connection to container of DataStax Distribution of Apache Cassandra

我创建了 Docker Apache Cassandra (DDAC) 的 DataStax 分发容器:

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 并得到相同的错误:

The specified host(s) could not be reached. All host(s) tried for query failed (tried: 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] Channel has been closed), localhost/127.0.0.1:9042 (com.datastax.driver.core.exceptions.TransportException: [localhost/127.0.0.1] Channel has been closed))
[localhost/0:0:0:0:0:0:0:1] Channel has been closed
[localhost/127.0.0.1] Channel has been closed

发生这种情况是因为容器有自己的 IP,您需要连接到它 - 您可以使用

获取容器的 IP
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ddac

或在主机上公开 Cassandra 端口,以便您可以通过本地主机连接 - 这是通过 docker run-p 标志完成的:

docker run -e DS_LICENSE=accept --name ddac --rm -p 9042:9042 -d datastax/ddac