web-dev-qa-db-ja.com

Dockerコンテナで実行されているMongoDBに接続する方法は?

次のように、PostgresサーバーとMongoDBサーバーを起動するDockerコンテナーをMacOSで実行しています。

docker run -p 80:80 -p 27017:27017 dockertest
 * Starting PostgreSQL 9.3 database server
  ...done.
 * Starting database mongodb
  ...done.

出力は、MongoDBサーバーが正しく起動されたことを示しています。次に、次のように、コンテナが実行されているVMのIPを検索します。

docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER    ERRORS
default   *        virtualbox   Running   tcp://192.168.99.100:2376           v1.11.2

ポートはマッピングされているようです:

docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                          NAMES
39e5198e4693        dockertest   "/bin/sh -c 'service "   3 minutes ago       Up 3 minutes        0.0.0.0:80->80/tcp, 0.0.0.0:27017->27017/tcp   drunk_nobel

ただし、別のターミナルウィンドウでMongoDBに接続する場合は、

mongo 192.168.99.100:27017

次のエラーが表示されます。

MongoDB Shell version: 2.6.4
connecting to: 192.168.99.100:27017/test
2016-06-05T18:48:19.050+0200 warning: Failed to connect to      192.168.99.100:27017, reason: errno:61 Connection refused
2016-06-05T18:48:19.052+0200 Error: couldn't connect to server 192.168.99.100:27017 (192.168.99.100), connection attempt failed at    src/mongo/Shell/mongo.js:148
exception: connect failed

私はすでに同様の質問を見ました(例えば、 ドッカーコンテナで実行されているmongoDBに接続できません )が、提案されたソリューションは機能していないようです。

25
MaVe

問題はDockerではなく、MongoDBの構成のbindipに関連していました。例: mongodb.conf bind_ip = 127.0.0.1は機能しませんが、0.0.0.0は機能します

7
MaVe