mongodb - 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 是 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/

相关文章:

mongodb - 如何在 MongoDB 的单个集合中查找文档之间的集合交集?

angularjs - angularjs可以直接连接mongodb吗?

linux - PHP升级到7后,为什么不能使用mongodb驱动?

node.js - 关于 Mongoose 填充关系一个字符串字段

mongodb - Mongo在计算条件下排序

mongodb - 查询以匹配包含点的多边形

mongodb - 如何在 MongoDB 中获取(或聚合)数组的不同键

java - MongoDb BSON 以 UTC 时间存储日期

java - 使用 Spring Data 按提取的日期、月份和年份聚合项目组

javascript - Passport 没有保持持久的登录 session