无法连接到mongodb容器

我无法连接到用docker-compose创build的mongodb容器

mongodbconfiguration(在docker-compose.yml中)如下:

mongodata: image: mongo:3.0.4 volumes: - /data/db command: --break-mongo mongo: image: mongo:3.0.4 volumes_from: - mongodata ports: - "27017:27017" command: --smallfiles --rest --auth 

当我运行:

docker-compose ps mongo

我有:

  Name Command State Ports ------------------------------------------------------------------------------------ followit_mongo_1 /entrypoint.sh --smallfile ... Up 0.0.0.0:27017->27017/tcp 

我不能连接mongo客户端,下面的命令

docker工人运行mongo mongo

失败,这是错误的:

 MongoDB shell version: 3.0.4 connecting to: test 2015-11-10T17:10:32.735+0000 W NETWORK Failed to connect to 127.0.0.1:27017, reason: errno:111 Connection refused 2015-11-10T17:10:32.741+0000 E QUERY Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed at connect (src/mongo/shell/mongo.js:179:14) at (connect):1:6 at src/mongo/shell/mongo.js:179 exception: connect failed 

尝试使用-p选项将27017容器的端口发布到主机

docker-compose run -p 27017:27017 mongo mongo

我可以通过这种方式从主机访问mongo。

问题是我在创build用户之前启用了需要用户authentication的访问控制。 所以我必须从mongo命令中删除–auth标志,创buildpipe理员用户:

 use admin db.createUser( { user: "myUserAdmin", pwd: "abc123", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } ) 

然后重新启动与访问控制的mongodb服务器:)

有关访问控制的更多信息,请参阅http://bit.ly/1QgVlW2