如何允许mongo docker容器进行远程连接

时间:2016-05-26 03:05:38

标签: mongodb

我正在使用官方的mongodb docker容器。 我想从端口27017上的主机连接到mongodb容器。 我在暴露这些端口的情况下运行容器

-p 27017:27017

我无法连接(连接被拒绝),我相信它,因为mongo conf文件未配置为允许远程连接。如何配置允许?官方容器没有安装vi / nano来修改图像。

我可以通过创建链接从另一个容器连接到mongodb - 但这不是我的愿望

1 个答案:

答案 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?

这是我为同一个问题所做的事情,并且有效。

  1. 在服务器上运行mongo docker实例

    docker run -d -p 27017:27017 -v ~/dataMongo:/data/db mongo
    
  2. 在正在运行的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:/#
    

    参考 - https://github.com/arunoda/meteor-up-legacy/wiki/Accessing-the-running-Mongodb-docker-container-from-command-line-on-EC2

  3. 输入mongo输入mongo shell。

    root@b07599e429fb:/# mongo
    
  4. 在本例中,我将设置一个名为ian的用户,并将该用户设为read&写入对cool_db数据库的访问权。

    > use cool_db
    
    > db.createUser({
        user: 'ian',
        pwd: 'secretPassword',
        roles: [{ role: 'readWrite', db:'cool_db'}]
    })
    

    参考:https://ianlondon.github.io/blog/mongodb-auth/(仅限第一点)

  5. 从mongod shell和bash退出。

  6. 现在运行启用了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对这个问题的回答)

  7. 我可以使用以下命令从本地Windows笔记本电脑连接到Google云端服务器上运行的实例。

    mongo <ip>:27017/cool_db -u ian -p secretPassword
    

    参考:how can I connect to a remote mongo server from Mac OS terminal