gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 18:08:01 24 4
gpt4 key购买 nike

我想创建一个带有配置了客户端访问控制的 mongodb 的 docker 容器(用户身份验证,请参阅 this)。

我已经使用 mongo 成功配置了一个 docker 容器 this image .但它不使用 mongo 访问控制。

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

对于标准的 mongodb 安装,我通常执行以下步骤:

  • 在没有 --auth 的情况下运行 mongod>
  • 连接到mongo并添加管理员用户
  • --auth重启mongo

我应该如何使用 docker 来做到这一点?因为 mongo 图像总是在没有 --auth 的情况下启动。我应该创建一个新图像吗?或者修改入口点?

可能我遗漏了什么,我是 docker 的新手......

最佳答案

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

所以这是我的最终脚本:

# 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"

关于具有客户端访问控制的 Mongodb docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34239251/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com