我正在尝试从一个单独的容器(名为 main)连接到一个 cassandra 容器。
这是我的 docker-compose.yml
version: '3.2'
services:
main:
build:
context: .
image: main-container:latest
depends_on:
- cassandra
links:
- cassandra
stdin_open: true
tty: true
cassandra:
build:
context: .
dockerfile: Dockerfile-cassandra
ports:
- "9042:9042"
- "9160:9160"
image: "customer-core-cassandra:latest"
一旦我使用 docker-compose up 运行它,我运行这个命令:
docker-compose exec main cqlsh cassandra 9042
但是我得到这个错误:
连接错误:('无法连接到任何服务器',{'172.18.0.2':错误(111,“尝试连接到 [('172.18.0.2',9042)]。最后一个错误:连接拒绝")})
最佳答案
我想出了答案。基本上,在 cassandra.yaml 文件中,它将默认的 rpc_address 设置为 localhost。如果是这种情况,Cassandra 将只监听本地主机上的请求,并且不允许来自其他任何地方的连接。为了改变这一点,我必须将 rpc_address 设置为我的“cassandra”容器,以便我的主容器(和任何其他容器)可以使用 cassandra 容器 ip 地址访问 Cassandra。
rpc_address: cassandra
关于docker - 使用 docker-compose 从单独的 docker 容器访问 Cassandra,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44664028/