2016-08-11 21 views
0

私はこの問題を克服でき、同じ問題でオンラインで複数の人が見つかりました。MongoJavaDriverを使用してmongodbコンテナに接続できません

私がしようとしていた:

new MongoClient(new ServerAddress("0.0.0.0", 27017), mongoClientBuilder.build());

私も運と"localhost""127.0.0.1"を試してみました。あなたは、コンテナIDが必要

INFO: Exception in monitor thread while connecting to server localhost:27017 
com.mongodb.MongoSocketOpenException: Exception opening socket 
    at com.mongodb.connection.SocketStream.open(SocketStream.java:63) 
    at com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:114) 
    at com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:128) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.net.ConnectException: Connection refused 
    at java.net.PlainSocketImpl.socketConnect(Native Method) 
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) 
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) 
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) 
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 
    at java.net.Socket.connect(Socket.java:589) 
    at com.mongodb.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:50) 
    at com.mongodb.connection.SocketStream.open(SocketStream.java:58) 
    ... 3 more 

答えて

-1

まず:

docker ps

あなたは、コンテナのための特定のIPアドレスを取得する必要があります:

$ docker exec -it ${container_id} bashオンライン提起 の問題は、同じスタックトレースを持っていました

これは、コンテナ内のターミナルセッションを開きます。 (コンテナターミナルにおける)次のラン:

$ cat /etc/hosts

これは名前はコンテナIDの最初の数文字であるエントリを含むホストを、プリントアウトします。

127.0.0.1 localhost 
... 
... 
172.17.0.2 container_id 

あなたのコンテナIDの隣にIPを使用したいものです::

new MongoClient(new ServerAddress("172.17.0.2", 27017), mongoClientBuilder.build());

誰もが私よりエレガントな解決策を持っている場合

出力は次のようになります聞くことに興味があります。たとえば、このIPは変更される可能性がありますが、私の経験では、コンテナが再起動したときは変更されません。

1

あなたはそれを作成するときにドッキングウィンドウコンテナにポートを公開する必要があります。

docker pull mongo 
docker run --name mongo -d -p 27017:27017 mongo 

、その後、あなたはポート27017

をlocalhostに接続することができます
関連する問題