2017-11-28 12 views
0

私のドッカーのバージョンは1.13.1です。 私は私のドッキングウィンドウコンテナからサーバーをRedisのために接続しようとしていますが、私は、接続がerror.Detailedログは以下のとおりである拒ん取得しています:redis.clients.jedis.exceptions.JedisConnectionException:によって引き起こさドッカーコンテナからredis serverに接続できません

のjava .net.ConnectException:接続が拒否されましたredis.clients.jedis.Connection.connect(Connection.java:207)[jedis-2.9.0.jar:] at redis.clients.jedis.BinaryClient.connect(BinaryClient.java :93) [jedis-2.9.0.jar:] at redis.clients.jedis.BinaryJedis.connect(BinaryJedis.java:1767) [jedis-2.9.0.jar:] at redis.clients.jedis .JedisFactory.makeObject(JedisFa ctory.java:106) [jedis-2.9.0.jar:] at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:888) [commons-pool2-2.4.3.jar :2.4.3] at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:432) [commons-pool2-2.4.3.jar:2.4.3] at org.apache.commons .pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:361) [commons-pool2-2.4.3.jar:2.4.3] at redis.clients.util.Pool.getResource(Pool.java:49)[ jedis-2.9.0.jar:] ... 27より原因:java.net.ConnectException:接続が拒否されました java.net.PlainSocketImpl.socketConnect(ネイティブメソッド)[rt.jar:1.7.0_80] at java.net.Abstr actPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) [rt.jarの:1.7.0_80] java.net.AbstractPlainSocketImpl.connectToAddressで (AbstractPlainSocketImpl.java:200) [rt.jarの:1.7.0_80]ジャワで 。 java.SocketSocketImpl.connect(SocksSocketImpl.java:392)[rt.jar:1.7.0_80] at java .net.Socket.connect(Socket.java:579)[rt.jar:1.7.0_80]at redis.clients.jedis.Connection.connect(Connection.java:184)[jedis-2.9.0.jar:] ... 34 more

私は--net="host"オプションを与えたときにこのエラーがなくなっているが、私は

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

を与えたときにコンテナが異なるVM上のDBへ接続することができるが、私は、エラーを取得しますが、Redisのサーバーために自己の存在を接続していませんホスティングマシン。

+0

質問のいくつか:ドッカーで赤いランが実行されていますか?あなたはどのOSを使用していますか? – yamenk

+0

OSはrhel 7.Redisはドッカーの外にある同じホストマシンにインストールされています.Redis&Dockerは同じマシンにインストールされています。 – Shadab

答えて

0

parent-hostではなく、localhost経由でredisに接続しようとしていると思われます。 Jedis接続を作成するときは、parent-host経由でredisに接続していることを確認してください。

--net=hostオプションが機能する理由は、この場合、localhostはホストマシンのIPであり、コンテナのIPではありません。

また、parent-hostのエンティティがコンテナ内に/etc/hostsにあることを確認してください。

+0

--add-hostは/etc/hosts.configで設定します。ip/localhost/parent-hostで試してみましたが、接続していません。 – Shadab

関連する問題