Docker-MongoDB中的身份validation问题
我通过Docker镜像在Linux Ubuntu中安装了MongoDB。 我已经在下面的YAML文件中设置参数来实现对mongodb的authentication。 但是当我使用命令docker-compose up -d
来启动服务器时,我收到了错误信息
“db'服务的不支持的configuration选项:'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
不是 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
条目将docker-compose.yml
映射到您的容器中,而不是添加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