2 votes

Pourquoi mon application dans le conteneur Docker ne peut-elle pas communiquer avec la base de données Couchbase dans le conteneur ?

Donc j'ai un clone de l'application java, et une base de données couchbase active, tout sur ma machine locale. Lorsque je lance l'application spring java, tout fonctionne bien, l'application se connectera à la base de données.

En revanche, j'utilise le même projet et les mêmes configurations de base de données en utilisant des conteneurs docker. Mais je n'arrive pas à les faire communiquer, et lorsque l'application démarre, je continue à obtenir cette exception :

java.net.ConnectException: Connexion refusée : localhost/127.0.0.1:8091
    at sun.nio.ch.SocketChannelImpl.checkConnect (Native Method)
    at sun.nio.ch.SocketChannelImpl.finishConnect (SocketChannelImpl.java:717)
    at com.couchbase.client.deps.io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect (NioSocketChannel.java:223)
    at com.couchbase.client.deps.io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect (AbstractNioChannel.java:285)
    at com.couchbase.client.deps.io.netty.channel.nio.NioEventLoop.processSelectedKey (NioEventLoop.java:589)
    at com.couchbase.client.deps.io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized (NioEventLoop.java:513)
    at com.couchbase.client.deps.io.netty.channel.nio.NioEventLoop.processSelectedKeys (NioEventLoop.java:427)
    at com.couchbase.client.deps.io.netty.channel.nio.NioEventLoop.run (NioEventLoop.java:399)
    at com.couchbase.client.deps.io.netty.util.concurrent.SingleThreadEventExecutor$2.run (SingleThreadEventExecutor.java:140)
    at com.couchbase.client.deps.io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run (DefaultThreadFactory.java:144)
    at java.lang.Thread.run (Thread.java:745)

J'ai également créé un réseau docker où j'ai mis l'application et la base de données.

Une idée pourquoi il n'y a pas de connectivité ?

3voto

Bukharov Sergey Points 3831

Vous essayez de vous connecter au localhost du conteneur

java.net.ConnectException: Connexion refusée :
localhost/127.0.0.1:8091

Mais vous devez vous connecter à un autre conteneur. Si vous exécutez le conteneur Docker avec l'argument --link mysql:mysql, vous devez spécifier dans le fichier de configuration de l'application de vous connecter à mysql au lieu de localhost ou 127.0.0.1

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X