我正在使用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
但却无济于事的原因。有什么建议我在做什么错吗?