无法连接到docker蒙哥

我正在build立一个项目使用理智与docker。 创build项目使用mongodb并创build资源后,我尝试运行它,但得到一个错误报告,服务器容器无法连接到mongo。 然后,我试图只是跑fig up ,看看这是一个无花果的问题,并得到同样的错误。 这是我的fig.yml (不相关的评论删除):

 db: image: mongo:latest ports: - "27017:27017" server: image: artificial/docker-sails:stable-pm2 command: sails lift volumes: - server/:/server ports: - "1337:1337" links: - db 

完整的错误报告如下(错误报告相同,尽pipedb_1的输出更简洁,客户端也有输出):

 Recreating hydro_db_1... Recreating hydro_server_1... Attaching to hydro_db_1, hydro_server_1 db_1 | mongod --help for help and startup options db_1 | 2015-02-17T13:32:00.092+0000 [initandlisten] MongoDB starting : pid=1 port=27017 dbpath=/data/db 64-bit host=b7a85ddb94e2 db_1 | 2015-02-17T13:32:00.093+0000 [initandlisten] db version v2.6.7 db_1 | 2015-02-17T13:32:00.094+0000 [initandlisten] git version: a7d57ad27c382de82e9cb93bf983a80fd9ac9899 db_1 | 2015-02-17T13:32:00.094+0000 [initandlisten] build info: Linux build7.nj1.10gen.cc 2.6.32-431.3.1.el6.x86_64 #1 SMP Fri Jan 3 21:39:27 UTC 2014 x86_64 BOOST_LIB_VERSION=1_49 db_1 | 2015-02-17T13:32:00.094+0000 [initandlisten] allocator: tcmalloc db_1 | 2015-02-17T13:32:00.094+0000 [initandlisten] options: {} db_1 | 2015-02-17T13:32:00.099+0000 [initandlisten] journal dir=/data/db/journal db_1 | 2015-02-17T13:32:00.099+0000 [initandlisten] recover : no journal files present, no recovery needed db_1 | 2015-02-17T13:32:00.274+0000 [initandlisten] waiting for connections on port 27017 server_1 | server_1 | info: Starting app... server_1 | server_1 | error: A hook (`orm`) failed to load! server_1 | error: Error: Failed to connect to MongoDB. Are you sure your configured Mongo instance is running? server_1 | Error details: server_1 | [Error: failed to connect to [localhost:27017]] server_1 | at _createError (/server/node_modules/sails-mongo/lib/adapter.js:98:23) server_1 | at /server/node_modules/sails-mongo/lib/adapter.js:101:13 server_1 | at /server/node_modules/sails-mongo/lib/connection.js:25:20 server_1 | at /server/node_modules/sails-mongo/node_modules/mongodb/lib/mongodb/mongo_client.js:406:11 server_1 | at process._tickDomainCallback (node.js:486:13) { [Error: Failed to connect to MongoDB. Are you sure your configured Mongo instance is running? server_1 | Error details: server_1 | [Error: failed to connect to [localhost:27017]]] server_1 | originalError: [Error: failed to connect to [localhost:27017]] } server_1 | error: Error: Failed to connect to MongoDB. Are you sure your configured Mongo instance is running? server_1 | Error details: server_1 | [Error: failed to connect to [localhost:27017]] server_1 | at _createError (/server/node_modules/sails-mongo/lib/adapter.js:98:23) server_1 | at /server/node_modules/sails-mongo/lib/adapter.js:101:13 server_1 | at /server/node_modules/sails-mongo/lib/connection.js:25:20 server_1 | at /server/node_modules/sails-mongo/node_modules/mongodb/lib/mongodb/mongo_client.js:406:11 server_1 | at process._tickDomainCallback (node.js:486:13) { [Error: Failed to connect to MongoDB. Are you sure your configured Mongo instance is running? server_1 | Error details: server_1 | [Error: failed to connect to [localhost:27017]]] server_1 | originalError: [Error: failed to connect to [localhost:27017]] } hydro_server_1 exited with code 1 Gracefully stopping... (press Ctrl+C again to force) Stopping hydro_db_1... 

我不确定这是一个docker问题,一个无花果问题,一个健全的问题,或一个风帆问题。 我也无法弄清楚如何解决这个问题。

localhostreplace为mongo容器IP,您应该能够从Docker将为您填充的环境variables中获取该IP。

Docker也将在/etc/hosts中为db设置一个条目,您可以使用它。

我通过Docker运行MongoDB,并且使用它来处理:

 $ export dockerip="$(docker-machine ls | awk '{print $5}' | sed -n '2p' | sed 's/tcp:\/\///' | sed 's/\:2376//')" $ mongo --host "$dockerip" --port 27017 
Interesting Posts