我已经通过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"
答案 0 :(得分:5)
security
YAML文件, authorization
和docker-compose
为not 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