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

Why can't my docker container app communicate with container couchbase database?

所以我有一个 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.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 网络,用于放置应用程序和数据库。

知道为什么没有连接吗?

您尝试连接到容器的 localhost

java.net.ConnectException: Connection refused: localhost/127.0.0.1:8091

但是你需要连接到另一个容器。如果您 运行 docker 带有参数 --link mysql:mysql 的容器,您需要在应用程序配置文件中指定连接到 mysql 而不是 localhost of 127.0.0.1