当前位置:  开发笔记 > 编程语言 > 正文

具有客户端访问控制的Mongodb docker容器

如何解决《具有客户端访问控制的Mongodbdocker容器》经验,为你挑选了1个好方法。

我想创建一个docker容器,其中mongodb配置了客户端访问控制(用户身份验证,请参阅此内容).

我已经使用此图像成功配置了一个带有mongo的docker容器.但它不使用mongo访问控制.

问题是要启用访问控制,我必须使用特定的命令行(--auth)运行mongodb,但仅在创建第一个管理员用户之后.

使用标准的mongodb安装,我通常会执行以下步骤:

没有经营mongod --auth

连接到mongo并添加管理员用户

重启mongo --auth

我怎么用docker做这个呢?因为mongo图像总是没有开始--auth.我应该创建一个新图像吗?或者修改入口点?

可能我错过了什么,我是码头工人的新手......



1> Davide Icard..:

好的,我找到了解决方案.基本上MongoDb具有允许设置访问安全性(--auth)但允许本地主机连接的功能.请参阅mongo本地例外.

所以这是我的最终剧本:

# Create a container from the mongo image, 
#  run is as a daemon (-d), expose the port 27017 (-p),
#  set it to auto start (--restart)
#  and with mongo authentication (--auth)
# Image used is https://hub.docker.com/_/mongo/
docker pull mongo
docker run --name YOURCONTAINERNAME --restart=always -d -p 27017:27017 mongo mongod --auth

# Using the mongo "localhost exception" add a root user

# bash into the container
sudo docker exec -i -t YOURCONTAINERNAME bash

# connect to local mongo
mongo

# create the first admin user
use admin
db.createUser({user:"foouser",pwd:"foopwd",roles:[{role:"root",db:"admin"}]})

# exit the mongo shell
exit
# exit the container
exit

# now you can connect with the admin user (from any mongo client >=3 )
#  remember to use --authenticationDatabase "admin"
mongo -u "foouser" -p "foopwd" YOURHOSTIP --authenticationDatabase "admin"

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有