无法连接到docker mongo
我正在使用 sane 和docker建立一个项目.创建使用mongodb的项目并创建资源后,我尝试运行它,但是收到一条错误消息,报告服务器容器无法连接到mongo.然后,我尝试仅运行 fig up
来查看它是否是无花果问题,并得到相同的错误.这是我的 fig.yml
(删除了不相关的注释):
I am setting up a project using sane with docker. After creating the project to use mongodb and createing a resource I tried running it, but got an error reporting that the server container could not connect to mongo. I then tried just running fig up
to see if it was a fig problem and got the same error. Here is my fig.yml
(irrelevant comments removed):
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
关于 fig up
的完整错误报告如下(关于 sane up
的错误报告是相同的,尽管 db_1
的输出更简洁,客户端也有输出行):
The full error report on fig up
is as follows (the error report on sane up
is the same, although the output from db_1
is more terse and there are also lines of output for the client):
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...
我不确定这是码头工人问题,无花果问题,理智问题还是帆问题.我也无法弄清楚该如何解决.
I'm not sure if this is a docker problem, a fig problem, a sane problem, or a sails problem. I also cannot figure out how to fix it.
用mongo容器IP替换 localhost
,您应该能够从Docker将为您填充的环境变量中获取IP.
Replace localhost
with the mongo container IP, which you should be able to get from an environment variable that Docker will populate for you.
Docker还将在您可以使用的/etc/hosts
中为 db
设置一个条目.
Docker will also set up an entry for db
in /etc/hosts
that you can use.