【问题标题】:Authentication issue in Docker-MongoDBDocker-MongoDB 中的身份验证问题
【发布时间】:2016-03-03 13:04:01
【问题描述】:

我已经通过 docker 镜像在 Linux Ubuntu 中安装了 MongoDB。 我已经在 YAML 文件中设置了如下参数来实现 mongodb 的身份验证。但是当我使用命令docker-compose up -d 启动服务器时,我收到了类似的错误

“'db' 服务的不支持配置选项:'security'”。

我该如何解决这个问题?

docker-compose.yaml:


db:
   image: mongo:2.6.4
   command: ["mongod", "--smallfiles"]
   expose: "27017"
   ports: "27017:27017"
   security: keyFile: "/home/ubuntu/dockerlab/keyfile.key"
   authorization: "enabled"

【问题讨论】:

    标签: mongodb docker docker-compose


    【解决方案1】:

    securityauthorizationnot a keyword 对于 docker-compose YAML 文件,所以把它们从那里取出。

    如果该文件密钥文件需要复制到容器中,您应该输入如下内容:

    FROM: mongo:2.6.4
    
    ADD /home/ubuntu/dockerlab/keyfile.key /tmp
    ENV AUTH yes
    

    在 Dockerfile 中。

    并更改docker-compose.yml 文件:

    image: mongo:2.6.4
    

    进入

    build: .
    

    并将command 值放入

     command: ["mongod", "--smallfiles", "--keyFile /tmp/keyfile.key" ]
    

    或者,您可以使用docker-compose.yml 中的volume 条目将keyfile.key 映射到您的容器中,而不是Dockerfile 中的ENV 您将, "--auth" 添加到作为值的序列中为command。然后你可以继续使用image 节并完全省略Dockerfile

    db:
       image: mongo:2.6.4
       command: ["mongod", "--smallfiles", "--auth", "--keyFile /tmp/keyfile.key" ]
       expose: "27017"
       ports: "27017:27017"
       volumes: 
       - /home/ubuntu/dockerlab/keyfile.key: /tmp
    

    【讨论】:

    • 感谢您的回复。现在,mongo 询问用户凭据以查看数据库。但是即使我提到了用户名和密码,我也无法登录 mongo -- mongo --port 27017 -u admuser -p password-123 --authenticationDatabase "admin"
    • 然后,我尝试了另一种语法,例如 mongo admin -u admuser -p password-123...但它没有登录...我该如何解决这个问题。
    • @JKG 我不知道 mongo 期望密钥文件在哪里(或者它是否首先这样做)。您是否尝试过在没有--auth 的情况下开始然后连接?顺便说一句,你从哪里得到的信息让你首先构造了错误的 docker-compose.yml 文件?
    • 我更新了答案,但我无法对此进行测试。当然,您必须生成正确的密钥文件,然后告诉 mongo 它在哪里。由于这本质上是一个新问题,您应该将其作为一个新问题提出,因为您的docker-compose.yml 文件问题现已解决。
    • 我希望 --auth 选项本身要求提供凭据(我猜身份验证将在 --auth 选项或密钥文件生成中起作用)。所以我继续那个。在另一台服务器(不是 docker 映像)中,我曾经使用此命令仅“mongo admin -u admuser -p password-123”登录。但是在这里我无法登录
    猜你喜欢
    • 1970-01-01
    • 2015-05-22
    • 1970-01-01
    • 2017-01-01
    • 2022-11-08
    • 2018-08-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多