为什么我的docker容器应用程序无法与容器couchbase数据库通信?

时间:2017-10-26 11:40:12

标签: java docker couchbase

所以我有一个java应用程序的克隆,以及一个活动的couchbase数据库,我本地机器上的所有东西。当我运行java spring应用程序时,一切正常,应用程序将连接到数据库。

另一方面,我使用docker容器使用相同的项目和数据库配置。但我似乎无法让他们沟通,当应用程序启动时,我不断得到这个例外:

java.net.ConnectException: Connection refused: 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)

我还创建了一个docker网络,我放置了应用程序和数据库。

知道为什么没有连接?

1 个答案:

答案 0 :(得分:3)

您尝试连接到容器localhost

  

java.net.ConnectException:拒绝连接:   本地主机/ 127.0.0.1:8091

但是你需要连接到另一个容器。如果您使用参数--link mysql:mysql运行docker容器,则需要在app配置文件中指定连接到mysql而不是localhost的{​​{1}}