默认情况下,MongoDB 中没有身份验证。这意味着它带有空身份验证。所以我们应该手动创建用户和角色。有很多方法可以通过身份验证创建 MongoDB docker-compose。其中最流行的一种是编写一个带有用户和角色的 bash 脚本,然后在 docker-compose 中使用它,另一种方法是创建一个带有用户和角色的 init-mongodb.js 文件并在 docker-compose 中使用它。但在这篇文章中,我将向您展示如何创建 MongoDB docker-compose,然后手动添加用户和角色。开始吧...

无需身份验证即可运行 MongoDB docker-compose

首先,我们应该在没有身份验证的情况下运行 MongoDBdocker-compose。使用docker-compose up -d我们可以运行它。

[Alt](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 用户。

[Alt](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 创建一个演示用户:

[Alt](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 容器。

[Alt](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

Logo

CI/CD社区为您提供最前沿的新闻资讯和知识内容

更多推荐