连接到 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
我创建了 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,您需要连接到它 - 您可以使用
获取容器的 IPdocker 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