Il collegamento da container Java UI al contenitore couchDB rifiuta

Ho una domanda in merito a Java e couchDB.

La mia configuration: – un'interface utente Java con un'interface al DB – un couchDB all'interno di un contenitore, esposto a localhost: 5984.

Bene.

Ho realizzato una connessione tra entrambi nella mia macchina Windows locale, che ha funzionato perfettamente.

Ora ho confezionato entrambi in contenitori, ma ho un problema:

    Caused by: java.net.ConnectException: Connection refused 

    Quello che ho fatto finora:

    Docker inspect ha consegnato il seguente risultato:

      "PortBindings": { "5984/tcp": [ { "HostIp": "", "HostPort": "5984" } ] }, 

    E quanto segue:

     "NetworkSettings": { "Bridge": "", "SandboxID": "860904f9f0d1132bdc3770a3af96627b1675865efe0491a8e51edfba143e8a7f", "HairpinMode": false, "LinkLocalIPv6Address": "", "LinkLocalIPv6PrefixLen": 0, "Ports": { "5984/tcp": [ { "HostIp": "0.0.0.0", "HostPort": "5984" } ] }, "SandboxKey": "/var/run/docker/netns/860904f9f0d1", "SecondaryIPAddresses": null, "SecondaryIPv6Addresses": null, "EndpointID": "aeff4e87630662516cd35db3d9a26804204420feed65506ff2457f13ddc82b19", "Gateway": "172.17.0.1", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "IPAddress": "172.17.0.2", "IPPrefixLen": 16, "IPv6Gateway": "", "MacAddress": "02:42:ac:11:00:02", "Networks": { "bridge": { "EndpointID": "aeff4e87630662516cd35db3d9a26804204420feed65506ff2457f13ddc82b19", "Gateway": "172.17.0.1", "IPAddress": "172.17.0.2", "IPPrefixLen": 16, "IPv6Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "MacAddress": "02:42:ac:11:00:02" } } } } 

    Sto collegando i miei 2 contenitori con:

     sudo docker run -it -p 5984:5984 --name couchdb klaemo/couchdb sudo docker run -ti --link couchdb -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix java:ui 

    Programmaticamente, sto collegando nel mio codice Java a localhost: 5984 (perché il mio couchDB esegue lì: P) – ma la mia connessione rifiuta sul mio ambiente contenitore.

    In che modo devo modificare la dichiarazione per realizzare una connessione di lavoro tra il mio contenitore? Ci sono errori dentro da dichiarazioni di Bash? O c'è un errore nella mia logica programmatica perché vincolava il contenitore da qualche altra parte?

    Guardando in avanti alle tue risposte.

    I migliori saluti.

    Ho finalmente trovato la soluzione. All'interno di un contenitore, il mio DB è collegato a localhost: 5984.

    Ma il mio contenitore è legato alla mia macchina a 172.17.0.1; e il mio DB è accessibile via 172.17.0.2:5984 (legame esterno).

    Pertanto, ho dovuto usare 172.17.0.2 come indirizzo IP mirato.