我正在使用官方的mongodb docker容器。 我想从端口27017上的主机连接到mongodb容器。 我在暴露这些端口的情况下运行容器
-p 27017:27017
我无法连接(连接被拒绝),我相信它,因为mongo conf文件未配置为允许远程连接。如何配置允许?官方容器没有安装vi / nano来修改图像。
我可以通过创建链接从另一个容器连接到mongodb - 但这不是我的愿望
答案 0 :(得分:5)
更好的解决方案:
https://blog.madisonhub.org/setting-up-a-mongodb-server-with-auth-on-docker/ https://docs.mongodb.com/v2.6/tutorial/add-user-administrator/
我对另一个问题的回答。 How to enable authentication on MongoDB through Docker?
这是我为同一个问题所做的事情,并且有效。
在服务器上运行mongo docker实例
docker run -d -p 27017:27017 -v ~/dataMongo:/data/db mongo
在正在运行的docker实例上打开bash。
docker ps
集装箱身份证明命令创建状态端口名称
b07599e429fb mongo" docker-entrypoint ..." 35分钟前上涨35分钟0.0.0.0:27017->27017/tcp musing_stallman
docker exec -it b07599e429fb bash
root@b07599e429fb:/#
输入mongo输入mongo shell。
root@b07599e429fb:/# mongo
在本例中,我将设置一个名为ian的用户,并将该用户设为read&写入对cool_db数据库的访问权。
> use cool_db
> db.createUser({
user: 'ian',
pwd: 'secretPassword',
roles: [{ role: 'readWrite', db:'cool_db'}]
})
从mongod shell和bash退出。
现在运行启用了auth的mongo docker。
docker run -d -p 27017:27017 -v ~/dataMongo:/data/db mongo mongod --auth
参考:How to enable authentication on MongoDB through Docker?(Usman Ismail对这个问题的回答)
我可以使用以下命令从本地Windows笔记本电脑连接到Google云端服务器上运行的实例。
mongo <ip>:27017/cool_db -u ian -p secretPassword
参考:how can I connect to a remote mongo server from Mac OS terminal