我正在使用官方的mongodb docker容器.我想从端口27017上的主机连接到mongodb容器.我运行容器,暴露了这些端口
-p 27017:27017
我无法连接(连接被拒绝),我相信它,因为mongo conf文件未配置为允许远程连接.如何配置允许?官方容器没有安装vi/nano来修改图像.
我可以通过创建链接从另一个容器连接到mongodb - 但这不是我的愿望
更好的解决方案:
https ://blog.madisonhub.org/setting-up-a-mongodb-server-with-auth-on-docker/ https://docs.mongodb.com/v2.6/tutorial/add -user管理员/
我对另一个问题的回答.如何通过Docker在MongoDB上启用身份验证?
这就是我为同样的问题所做的,并且它起作用了.
在服务器上运行mongo docker实例
docker run -d -p 27017:27017 -v ~/dataMongo:/data/db mongo
Run Code Online (Sandbox Code Playgroud)在正在运行的docker实例上打开bash.
docker ps
Run Code Online (Sandbox Code Playgroud)
容器IDIMAGE命令创建状态端口名称
b07599e429fb mongo"docker-entrypoint ..."35分钟前上涨35分钟0.0.0.0:27017->27017/tcp musing_stallman
docker exec -it b07599e429fb bash
root@b07599e429fb:/#
Run Code Online (Sandbox Code Playgroud)
键入mongo输入mongo shell.
root@b07599e429fb:/# mongo
Run Code Online (Sandbox Code Playgroud)对于此示例,我将设置一个名为ian的用户,并为该用户提供对cool_db数据库的读写访问权限.
> use cool_db
> db.createUser({
user: 'ian',
pwd: 'secretPassword',
roles: [{ role: 'readWrite', db:'cool_db'}]
})
Run Code Online (Sandbox Code Playgroud)
从mongod shell和bash退出.
现在运行启用了auth的mongo docker.
docker run -d -p 27017:27017 -v ~/dataMongo:/data/db mongo mongod --auth
Run Code Online (Sandbox Code Playgroud)
参考:如何通过Docker在MongoDB上启用身份验证?(Usman Ismail对这个问题的回答)
我能够使用以下命令从本地Windows笔记本电脑连接到在Google云服务器上运行的实例.
mongo <ip>:27017/cool_db -u ian -p secretPassword
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7030 次 |
| 最近记录: |