Docker-MongoDB 中的身份验证问题

Authentication issue in Docker-MongoDB

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

securityauthorization 对于 docker-compose YAML 文件来说是 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" ]

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