mongodb - 无法使用 docker-compose 从主机连接到 mongo
问题描述
我正在使用 docker-compose 运行我的 mongo db
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
但没有帮助的原因。任何建议我做错了什么?
解决方案
推荐阅读
- javascript - Vue.js - 如何从对象输出链接
- php - 在php中使用一个外键列在数据库中插入表单数据
- python - pandas Dataframe 如何以日期为索引进行过滤
- javascript - 根据随机生成的索引更新数组
- python - JSONDecodeError:期望值:尝试访问goodread api时的第1行第1列(char 0)
- python-3.x - 将 ubuntu 18.04 升级到 20.04 但软件包仍然是 +bionic1
- c - 从库中调用函数与复制函数定义
- javascript - 输入类型=“数字”的最大长度和最小长度被忽略
- typescript - 在 vueJS 中发布 1 项内联表后删除表行
- docker - 以 swarm 模式重新启动 docker 容器