2017-06-20 148 views
0

我試圖從一個單獨的容器(名爲main)連接到cassandra容器。使用docker-compose從單獨的docker container訪問Cassandra

這是我的搬運工,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 exec main cqlsh cassandra 9042

,但我得到這個錯誤:

Connection error: ('Unable to connect to any servers', {'172.18.0.2': error(111, "Tried connecting to [('172.18.0.2', 9042)]. Last error: Connection refused")})

回答

1

我想通了t他回答。基本上,在cassandra.yaml文件中,它將默認的rpc_address設置爲localhost。如果是這種情況,Cassandra將僅監聽本地主機上的請求,並且不允許來自其他任何地方的連接。爲了改變這種情況,我必須將rpc_address設置爲我的「cassandra」容器,以便我的主容器(以及任何其他容器)可以使用cassandra容器ip地址訪問Cassandra。

rpc_address: cassandra