0

私はこの問題を解決することができ、オンラインで同じ問題を抱えている人を複数見つけました。

私は試していました:

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

私も試してみましたが、運がありませんでした"localhost""127.0.0.1"オンラインで提起された問題には、同じスタック トレースがありました。

    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
4

2 に答える 2

1

ポートを作成するときに、ポートを docker コンテナーに公開する必要があります。

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

そして、localhostポート27017に接続できます

于 2017-01-24T12:22:05.567 に答える
-1

まず、コンテナ ID が必要です。

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 は変更される可能性がありますが、私の経験ではコンテナーの再起動時には変更されません。

于 2016-08-11T20:59:40.293 に答える