2017-06-20 5 views
0

Ich versuche, eine Verbindung zu einem Cassandra-Container aus einem separaten Container (namens Main).Zugriff Cassandra von separaten Docker-Container mit Docker-komponieren

Das ist mein 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" 

Sobald ich dies mit Docker-komponieren oben laufen, laufen ich diesen Befehl ein:

docker-compose exec main cqlsh cassandra 9042

aber ich habe diesen Fehler:

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")})

Antwort

1

Ich fand t er antwortet. In der Datei cassandra.yaml wird die Standard-rpc_address auf localhost gesetzt. Wenn dies der Fall ist, wird Cassandra nur auf Anfragen auf localhost hören und keine Verbindungen von irgendwo anders zulassen. Um dies zu ändern, musste ich rpc_address auf meinen "cassandra" -Behälter setzen, damit mein Hauptcontainer (und alle anderen Container) unter Verwendung der Cassandra-Container-IP-Adresse auf Cassandra zugreifen konnte.

rpc_address: cassandra

Verwandte Themen