Docker-MongoDB中的身份验证问题

J K*_*K G 5 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"
Run Code Online (Sandbox Code Playgroud)

Ant*_*hon 5

securityauthorization不是关键字docker-composeYAML文件,所以把他们救出来.

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

FROM: mongo:2.6.4

ADD /home/ubuntu/dockerlab/keyfile.key /tmp
ENV AUTH yes
Run Code Online (Sandbox Code Playgroud)

在Dockerfile中.

并更改docker-compose.yml文件:

image: mongo:2.6.4
Run Code Online (Sandbox Code Playgroud)

build: .
Run Code Online (Sandbox Code Playgroud)

command价值

 command: ["mongod", "--smallfiles", "--keyFile /tmp/keyfile.key" ]
Run Code Online (Sandbox Code Playgroud)

或者您可以使用一个volume条目的docker-compose.yml映射keyfile.key到你的容器,而不是 ENVDockerfile您添加, "--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
Run Code Online (Sandbox Code Playgroud)