Docker-MongoDB中的身份验证问题

时间:2016-03-03 13:04:01

标签: mongodb docker docker-compose

我已经通过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"

1 个答案:

答案 0 :(得分:5)

对于security YAML文件,

authorizationdocker-composenot a keyword,因此请将其移出。

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

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" ]

或者,您可以使用volume中的docker-compose.yml条目将keyfile.key映射到您的容器中,而不是ENV中的Dockerfile, "--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