如何使用 docker-compose 启用 MongoDB 身份验证?
默认情况下,MongoDB 中没有身份验证。这意味着它带有空身份验证。所以我们应该手动创建用户和角色。有很多方法可以通过身份验证创建 MongoDB docker-compose。其中最流行的一种是编写一个带有用户和角色的 bash 脚本,然后在 docker-compose 中使用它,另一种方法是创建一个带有用户和角色的 init-mongodb.js 文件并在 docker-compose 中
默认情况下,MongoDB 中没有身份验证。这意味着它带有空身份验证。所以我们应该手动创建用户和角色。有很多方法可以通过身份验证创建 MongoDB docker-compose。其中最流行的一种是编写一个带有用户和角色的 bash 脚本,然后在 docker-compose 中使用它,另一种方法是创建一个带有用户和角色的 init-mongodb.js 文件并在 docker-compose 中使用它。但在这篇文章中,我将向您展示如何创建 MongoDB docker-compose,然后手动添加用户和角色。开始吧...
无需身份验证即可运行 MongoDB docker-compose
首先,我们应该在没有身份验证的情况下运行 MongoDBdocker-compose
。使用docker-compose up -d
我们可以运行它。
[](https://res.cloudinary.com/practicaldev/image/fetch/s--yezN4R8G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev- to-uploads.s3.amazonaws.com/i/uqd2xlbe7m5mmzlglebp.png)
连接 MongoDB 而无需在容器内进行身份验证
为此,我们首先应该运行docker exec -it mongodb bash
并进入容器内部。然后只需运行mongo
命令连接到 mongodb。
为我们的 MongoDB 创建用户和角色
首先,我们将在 admin 数据库中创建具有用户名 root 和密码 root 的 admin 用户。
[](https://res.cloudinary.com/practicaldev/image/fetch/s--M6-Mj7_n--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https:// dev-to-uploads.s3.amazonaws.com/i/yvuxdragqm624yqrwj3n.png)
然后我们需要创建其他用户。在这里,我将在演示数据库中为我们的 MongoDB 创建一个演示用户:
[](https://res.cloudinary.com/practicaldev/image/fetch/s--8JH0ACXd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev- to-uploads.s3.amazonaws.com/i/ac3bqz221coi4t74x1w3.png)
现在我们准备好使用 auth 运行 MongoDB。
在 docker-compose 中启用 MongoDB 身份验证
为了在 MongoDB 中启用身份验证,我们将在 docker-compose 中使用--auth
标志。之后我们可以再次使用docker-compose up -d
命令来运行 MongoDB 容器。
[](https://res.cloudinary.com/practicaldev/image/fetch/s--FpCDa7qX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev- to-uploads.s3.amazonaws.com/i/u8e1j6l02m570wrsm4nw.png)
使用定义的身份验证连接 MongoDB
在这一步中,我们可以使用定义的身份验证连接我们的数据库。首先,我们需要运行docker exec -it mongodb bash
命令才能进入容器内部。现在我们进去了,所以我们可以连接我们的数据库。这里我写了2个命令,其中一个是连接admin db,另一个是连接demo db。
mongo -u root -p root --authenticationDatabase admin
mongo -u demo -p demo12345 --authenticationDatabase demo
更多推荐
所有评论(0)