我已经通过 docker 镜像在 Linux Ubuntu 中安装了 MongoDB。
我已经在 YAML 文件中设置了如下参数来实现 mongodb 的身份验证。但是当我使用命令 docker-compose up -d
启动服务器时,我收到了类似
"Unsupported config option for 'db' service: '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"
最佳答案
security
和 authorization
是 not a keyword对于 docker-compose
YAML 文件,所以将它们从那里取出。
如果该文件 key 文件需要复制到容器中,您应该输入如下内容:
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
https://stackoverflow.com/questions/35772977/