Hi


I want to run cassandra docker image and want to connect it with my application 
running in another container. I am on Windows10 and both containers are running 
on same Windows10 Home machine. I also have Cassandra installed on the machine 
as standalone application (without Docker).



I thought to use host.docker.internal as domain name in both the applications. 
But when I start cassandra image, I get error

org.apache.cassandra.exceptions.ConfigurationException: Unable to bind to 
address host.docker.internal/192.168.65.2:7000. Set listen_address in 
cassandra.yaml to an interface you can bind to, e.g., your private IP address 
on EC2



Question 1) Why is host.docker.internal resolving to 192.168.65.2/7000?. 
Shouldn't it be 192.168.1.12 as that is what is configured in my etc/hosts file 
on Windows 10

C:\Users\manuc>ping host.docker.internal



Pinging host.docker.internal [192.168.1.12] with 32 bytes of data:

Reply from 192.168.1.12: bytes=32 time<1ms TTL=128

Reply from 192.168.1.12: bytes=32 time=1ms TTL=128

Reply from 192.168.1.12: bytes=32 time<1ms TTL=128

Reply from 192.168.1.12: bytes=32 time<1ms TTL=128



I also tried explicitly specifying 192.168.1.12 when starting cassandra images 
but I get similar error.



The only way I am able to start the container is by running docker run 
ca795bbd8fd7 but in this case, cassandra listens at address 0.0.0.0 for cqlsh



Starting listening for CQL clients on /0.0.0.0:9042 (unencrypted)..



But in this case, my other docker application or cqlsh of the standalone 
CasSandra is unable to connect with it (running on the same windows machine)



C:\Users\manuc>cqlsh host.docker.internal 9042

Connection error: ('Unable to connect to any servers', {'192.168.1.12': 
error(10061, "Tried connecting to [('192.168.1.12', 9042)]. Last error: No 
connection could be made because the target machine actively refused it")})

C:\Users\manuc>cqlsh 0.0.0.0 9042

Connection error: ('Unable to connect to any servers', {'0.0.0.0': error(10049, 
"Tried connecting to [('0.0.0.0', 9042)]. Last error: The requested address is 
not valid in its context")})



C:\Users\manuc>docker run .. my_other_docker_application

[trace] s.d.c.CassandraConnectionManagementService - creating session with uri 
CassandraConnectionUri(cassandra://host.docker.internal:9042/myKeyspace) and 
cluster name Test Cluster

[trace] s.d.c.CassandraConnectionManagementService - exception in connecting 
with database com.datastax.driver.core.exceptions.NoHostAvailableException: All 
host(s) tried for query failed (tried: host.docker.internal/192.168.65.2:9042 
(com.datastax.driver.core.exceptions.TransportException: 
[host.docker.internal/192.168.65.2:9042] Cannot connect))

Oops, cannot start the server.

play.api.libs.json.JsResult$Exception: {"obj":[{"msg":["Unable to connect with 
database"],"args":[]}]}


Question 2) How can I make Cassandra container connect with my other 
application container or cqlsh of my standalone Cassandra installation?

Thanks

Sent from Mail<https://go.microsoft.com/fwlink/?LinkId=550986> for Windows 10

Reply via email to