为什么我的 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
所以我有一个 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