次のように、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に接続できません )が、提案されたソリューションは機能していないようです。
問題はDockerではなく、MongoDBの構成のbindipに関連していました。例: mongodb.conf bind_ip = 127.0.0.1は機能しませんが、0.0.0.0は機能します