如何在Docker中设置带账户权限的MongoDB容器

本文将介绍如何在Docker中使用官方的MongoDB镜像创建一个带有账户权限的容器,并提供详细的步骤和命令

在使用Docker进行应用容器化时,有时需要为MongoDB数据库设置账户权限以保障数据的安全性。

那么应该如何使用官方的MongoDB镜像,在Docker中创建一个带有账户权限的MongoDB容器。请查看以下步骤

步骤一:拉取官方的MongoDB镜像

运行以下命令将下载并pull官方的MongoDB镜像:

docker pull mongo

步骤二:运行不带--auth参数的容器

运行以下命令,,将MongoDB容器运行起来,将/data/db目录映射到您想要存储数据的位置,并将端口号27017映射到所需的端口。

注:不带--auth 把容器run起来

docker run -d -p 27017:27017 -v /your/desired/data/directory:/data/db mongo

步骤三:进入容器并设置账户权限

按照以下顺序运行命令:

步骤3-0:进入容器的bash终端

docker exec -it <container_id> /bin/bash

步骤3-1:连接到MongoDB

mongo

步骤3-2:切换到admin数据库

use admin

步骤3-3:创建管理员用户

db.createUser({ user: "admin", pwd: "xxxxxx", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })

步骤3-4:验证管理员用户(可选)

db.auth("admin", "上面的密码")

步骤3-5:切换到其他要添加账户信息的数据库

use 其他要添加账户信息的数据库名

步骤3-6:创建数据库账户

db.createUser({ user: "username", pwd: "password", roles: [{ role: "readWrite", db: "其他要添加账户信息的数据库名" }] })

步骤四:删除容器

可以使用以下命令删除容器

docker stop <container_id>
docker rm <container_id>

步骤五:创建带--auth参数的容器

为了启用账户权限,创建一个新的MongoDB容器,并带有--auth参数。使用与步骤二相同的映射设置运行以下命令:

docker run -d -p 27017:27017 -v /your/desired/data/directory:/data/db --name mongodb_auth mongo --auth

步骤六:启动容器并访问数据库

可以使用以下格式访问具有账户权限的MongoDB数据库:

mongodb://账户:密码@host:27017/数据库名

步骤七:设置MongoDB随系统启动

如果需要MongoDB容器随系统启动自动运行,可以使用以下命令:

docker update --restart=always <容器ID 或 容器名称>

如何追加新数据库

如需在现有容器中追加新的数据库,只需重复步骤3-1、3-2、3-3(跳过步骤)、3-4、3-5和3-6即可。

通过以上步骤,您可以在Docker中创建一个带有账户权限的MongoDB容器,并保障数据库的安全性。

本文关键词:Docker, MongoDB, 容器, 账户权限, 设置文章来源地址https://www.toymoban.com/diary/docker/530.html

到此这篇关于如何在Docker中设置带账户权限的MongoDB容器的文章就介绍到这了,更多相关内容可以在右上角搜索或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

原文地址:https://www.toymoban.com/diary/docker/530.html

如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用
上一篇 2023年11月16日 10:26
如何解决更新Vue CLI 5后,在Less中使用public路径下资产报错的问题
下一篇 2023年11月17日 10:07

相关文章

  • docker中设置容器健康检查

    在 HEALTHCHECK [选项] CMD 后面的命令,格式和 ENTRYPOINT 一样,分为 shell 格式,和 exec 格式。命令的返回值决定了该次健康检查的成功与否: 0 :成功; 1 :失败; 2 :保留值,不要使用 容器启动之后,初始状态会为 starting (启动中)。Docker Engine会等待 interval 时间,开始执行健康

    2024年02月15日
    浏览(36)
  • 在 Docker 容器中使用代理,你需要手动在容器中设置代理

    Docker 容器里的进程默认情况下不会共享宿主机的代理配置,因为 Docker 容器是独立的运行环境,它有自己的网络栈和 IP 地址。容器中的进程和宿主机上的进程是相互隔离的。 如果你需要在 Docker 容器中使用代理,你需要手动在容器中设置代理。有几种方法可以做到: 使用

    2024年02月14日
    浏览(45)
  • Docker 安装 MongoDB开启认证,创建只读用户权限。

    docker run -itd --name mongo -p 27017:27017 mongo --auth --auth 就是开启mongodb权限认证。如果不加 --auth 则是无权限认证,连接成功后任何用户都可以对数据库进行读写操作。 docker run -itd  --name mongo -p 27017:27017 mongo --auth   docker exec -it mongo mongo admin   db.createUser({ user:\\\'admin\\\',pwd:\\\'123456\\\',roles:[

    2024年02月17日
    浏览(43)
  • docker下载mongodb镜像并启动容器

    1、查找mongodb相关镜像 找到相关的镜像进行拉取,如果不指定版本,默认下载最新的mongoDB。建议自己先查找需要那个版本后在进行拉取,因为mongoDB不同版本之间差距较大。 2、拉取镜像 这里拉取mongodb6.0 拉取成功后,查看docker镜像 3、本地创建容器卷文件夹 首先在本地创建文

    2024年02月11日
    浏览(36)
  • yapi容器化docker部署以及mongodb容器的持久化挂载异常问题

    通过docker形式部署yapi,需要准备一个mongodb,然后直接在一个空文件夹里写好Dockerfile,其中通过wget下载yapi的zip包。 基本按照这篇文章:https://www.modb.pro/db/149666 来处理即可 把mongodb的docker 跑起来, --auth 表示需要密码才能访问 注意 原文中启动mongo的容器是这样的 首先创建Mon

    2024年02月14日
    浏览(36)
  • Docker 创建mongoDB容器,status为Exited (2)解决方法

    在命令无误的情况下创建出来的status为Exited (2) 查看对应目录下的mongo.conf文件,例如:/root/mongo/mongod.conf 仔细检查是否有误,尤其是字符拼写和大小写问题。 我的就是大小写有误产生的问题,如图: dbpath 应为 dpPath ,为字母驼峰原创。 更正后先删除对应创建失败的容器(dock

    2024年02月17日
    浏览(41)
  • Docker安装常用的容器,包括MySQL,Redis,RabbitMQ,MongoDB,FDFS等

    首先安装docker 依赖库 添加docker ce的软件源信息,自行选择,可添加可不添加,如果不是阿里云或者腾讯云的,请还是添加一下吧 安装docker docker -v --查看docker版本 docker images --查看当前docker运行 sudo systemctl start docker --启动docker 在虚拟机里边 docker images --有时候权限不足 我们

    2024年02月11日
    浏览(46)
  • docker - 常用容器部署命令大全(MySQL、MongoDB、Redis、RabbitMQ、ES、Kibana、Nacos、Sentine)

    目录 一、常用容器运行指令 MySQL Redis RabbitMQ ElasticSearch  kibana  Nacos Sentinel a)未持久化部署 b)持久化部署 a)未持久化部署: b)持久化部署:   a)为了 es 和 将来要下载的 kibana 进行互联,因此需要我们去创建一个网络. b) ES 部署 Ps:如果报错 \\\"Caused by: java.nio.file.Access

    2024年01月20日
    浏览(66)
  • 权限提升-Linux系统权限提升篇&Vulnhub&Rbash绕过&Docker&LXD容器&History泄漏&shell交互

    1、普通用户到Linux-泄漏-History 2、普通用户到Linux-限制-Rbash绕过 3、普通用户到Linux-容器-LXDDocker 4.Linux系统提权-web/普通用户-docker逃逸提权shell交互 章节点: 1、Web权限提升及转移 2、系统权限提升及转移 3、宿主权限提升及转移 4、域控权限提升及转移 Linux: 应用场景 获取到

    2024年04月08日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包