无法从泊坞窗容器连接到服务器的Redis(Not able to connect to redis

2019-09-28 23:16发布

我的码头工人的版本是1.13.1。 我尝试连接到Redis的服务器从我的搬运工容器,但我得到拒绝连接error.Detailed日志如下:

redis.clients.jedis.exceptions.JedisConnectionException:通过引起java.net.ConnectException:连接被拒绝在redis.clients.jedis.Connection.connect(Connection.java:207)[jedis-2.9.0.jar:]在redis的.clients.jedis.BinaryClient.connect(BinaryClient.java:93)[jedis-2.9.0.jar:]在redis.clients.jedis.BinaryJedis.connect(BinaryJedis.java:1767)[jedis-2.9.0.jar :]在redis.clients.jedis.JedisFactory.makeObject(JedisFactory.java:106)[jedis-2.9.0.jar:]在org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:888) [公地pool2-2.4.3.jar:2.4.3]在org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:432)[公地pool2-2.4.3.jar:2.4.3 ]在org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:361)[公地pool2-2.4.3.jar:2.4.3]在redis.clients.util.Pool.getResource(池。的java:49)[jedis-2.9.0.jar:]:java.net.ConnectException:... 27更由导致连接拒绝在java.net.PlainSocketImpl.socketConn ECT(本机方法)[rt.jar中:1.7.0_80]在java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)[rt.jar中:1.7.0_80]在java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java :200)[rt.jar中:1.7.0_80]在java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)[rt.jar中:1.7.0_80]在java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392 )[rt.jar中:1.7.0_80]在java.net.Socket.connect(Socket.java:579)[rt.jar中:1.7.0_80]在redis.clients.jedis.Connection.connect(Connection.java:184 )[jedis-2.9.0.jar:] ... 34更

当我给--net="host"选项消失了这个错误,但是当我给

--add-host=parent-host:`ip route show | grep docker0 | awk '{print \$9}'`

我得到的错误,虽然容器是能够连接到数据库在不同的虚拟机,但没有连接到Redis的服务器现在的自己托管的机器上。

Answer 1:

我怀疑的问题是,你正在试图连接到通过Redis的localhost ,而不是parent-host 。 请确保您连接到通过Redis的parent-host创建Jedis连接时。

究其原因--net=host选项的工作,就是在这种情况下, localhost将参照IP主机,而不是到容器。

此外,还要确保有一个enty parent-host/etc/hosts的容器内。



文章来源: Not able to connect to redis server from docker container