无法使用docker-compose从主机连接到mongo

时间:2019-05-11 15:50:06

标签: mongodb docker docker-compose

我正在使用docker-compose运行我的mongo数据库

version: '3'
services:
  db:
    image: mongo:4
    ports: 
      - "27017:27017"
    volumes:
      - ./storage/mongo:/data/db:rw
    environment:
      - MONGO_INITDB_ROOT_USERNAME=admin
      - MONGO_INITDB_ROOT_PASSWORD=admin123
    command: --smallfiles --bind_ip_all --port 27017

当我这样做

$> docker-compose exec db bash

我可以简单地连接到我的数据库

$> mongo -u admin -p admin123

但是,当我从主机系统执行相同的操作时,我无法连接

(master) ✗ mongo -u admin -p admin123                                 
MongoDB shell version v4.0.3
connecting to: mongodb://127.0.0.1:27017
Implicit session: session { "id" : UUID("8689631e-ac9c-40f8-aa2a-e55f6103224f") }
MongoDB server version: 4.0.9
2019-05-11T17:44:19.181+0200 E QUERY    [js] Error: Authentication failed. :
DB.prototype._authOrThrow@src/mongo/shell/db.js:1685:20
@(auth):6:1
@(auth):1:2
exception: login failed

我也尝试使用--host 0.0.0.0,但结果相同。以下是ps

的列表
$> docker-compose ps
       Name                      Command               State                                  Ports                                
-----------------------------------------------------------------------------------------------------------------------------------
       db_1         docker-entrypoint.sh --sma ...     Up      0.0.0.0:27017->27017/tcp 

我感到mongo不接受远程连接,这就是为什么我添加command: --smallfiles --bind_ip_all --port 27017但却无济于事的原因。有什么建议我在做什么错吗?

0 个答案:

没有答案