Docker DataStax 连接不工作
Docker With DataStax Connection Not Working
我编写了 docker-compose.yml
文件,该文件从 docker 商店下载图像。我已经在 docker 商店中订阅了该图片,我可以提取该图片。以下是我在撰写文件中使用的服务。
- store/datastax/dse-server:5.1.6
- datastax/dse-studio
我写的compose文件所遵循的link是datastax/docker-images
我是 运行 docker 来自 Docker Toolbox
因为我正在使用 Window 7.
version: '2'
services:
seed_node:
image: "store/datastax/dse-server:5.1.6"
environment:
- DS_LICENSE=accept
# Allow DSE to lock memory with mlock
cap_add:
- IPC_LOCK
ulimits:
memlock: -1
node:
image: "store/datastax/dse-server:5.1.6"
environment:
- DS_LICENSE=accept
- SEEDS=seed_node
links:
- seed_node
# Allow DSE to lock memory with mlock
cap_add:
- IPC_LOCK
ulimits:
memlock: -1
studio:
image: "datastax/dse-studio"
environment:
- DS_LICENSE=accept
ports:
- 9091:9091
当我进入浏览器 link 寻找 http://192.168.99.100:9091/
并尝试建立连接时,我收到以下错误:
TEST FAILED
All host(s) tried for query failed (tried: /192.168.99.100:9042 (com.datastax.driver.core.exceptions.TransportException: [/192.168.99.100:9042] Cannot connect))
Docker 编写 creates a default internal network,您的所有容器都将获得 IP 地址并可以进行通信。您在那里使用的 IP 地址 (192.168.99.100
) 是 host 的地址,即 运行 容器的地址,而不是容器可以通信的内部 IP 地址在该默认内部网络上相互连接。您 运行 所在的端口 9091
Studio 在该外部 IP 地址上可用,因为您在 yaml
:
的 studio
服务中公开了它
ports:
- 9091:9091
要让 Studio 连接到您的一个节点,您需要在它们通信的内部网络上使用 IP,而不是在外部 IP 上。 Docker Compose 的妙处在于,您无需尝试找出那些内部 IP,只需使用与 [=15] 中的服务名称相匹配的 hostname =] 文件.
因此,要连接到您命名为 node
的服务(即 DSE 节点),您应该在 Studio 中创建连接时只使用主机名 node
(而不是 IP)。
我编写了 docker-compose.yml
文件,该文件从 docker 商店下载图像。我已经在 docker 商店中订阅了该图片,我可以提取该图片。以下是我在撰写文件中使用的服务。
- store/datastax/dse-server:5.1.6
- datastax/dse-studio
我写的compose文件所遵循的link是datastax/docker-images
我是 运行 docker 来自 Docker Toolbox
因为我正在使用 Window 7.
version: '2'
services:
seed_node:
image: "store/datastax/dse-server:5.1.6"
environment:
- DS_LICENSE=accept
# Allow DSE to lock memory with mlock
cap_add:
- IPC_LOCK
ulimits:
memlock: -1
node:
image: "store/datastax/dse-server:5.1.6"
environment:
- DS_LICENSE=accept
- SEEDS=seed_node
links:
- seed_node
# Allow DSE to lock memory with mlock
cap_add:
- IPC_LOCK
ulimits:
memlock: -1
studio:
image: "datastax/dse-studio"
environment:
- DS_LICENSE=accept
ports:
- 9091:9091
当我进入浏览器 link 寻找 http://192.168.99.100:9091/
并尝试建立连接时,我收到以下错误:
TEST FAILED
All host(s) tried for query failed (tried: /192.168.99.100:9042 (com.datastax.driver.core.exceptions.TransportException: [/192.168.99.100:9042] Cannot connect))
Docker 编写 creates a default internal network,您的所有容器都将获得 IP 地址并可以进行通信。您在那里使用的 IP 地址 (192.168.99.100
) 是 host 的地址,即 运行 容器的地址,而不是容器可以通信的内部 IP 地址在该默认内部网络上相互连接。您 运行 所在的端口 9091
Studio 在该外部 IP 地址上可用,因为您在 yaml
:
studio
服务中公开了它
ports:
- 9091:9091
要让 Studio 连接到您的一个节点,您需要在它们通信的内部网络上使用 IP,而不是在外部 IP 上。 Docker Compose 的妙处在于,您无需尝试找出那些内部 IP,只需使用与 [=15] 中的服务名称相匹配的 hostname =] 文件.
因此,要连接到您命名为 node
的服务(即 DSE 节点),您应该在 Studio 中创建连接时只使用主机名 node
(而不是 IP)。