Docker部署MongoDB详细指南
在现代的Web开发中,数据库是不可或缺的一部分。MongoDB作为一种流行的NoSQL数据库,因其灵活的文档结构和高性能而广受欢迎。本文将详细介绍如何在Ubuntu 24.04系统上使用Docker部署MongoDB,包括创建存储目录、启动容器、创建用户以及测试连接等步骤。
一、创建MongoDB存储目录并设置权限
首先,我们需要创建一个目录来存储MongoDB的数据文件,并为该目录设置适当的权限。执行以下命令:
sudo mkdir -p /www/app/data/db && sudo chmod 777 /www/app/data/db
这个命令会在/www/app/目录下创建一个名为data/db的文件夹,并将该文件夹的权限设置为777,以确保所有用户都可以读写该目录。
二、创建MongoDB容器
接下来,我们将使用Docker命令来启动一个MongoDB容器。执行以下命令:
sudo docker run -d --name mongodb -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=root -e MONGO_INITDB_ROOT_PASSWORD=root_password -v /www/app/data/db:/data/db mongodb/mongodb-community-server:latest
这条命令会执行以下操作:
-
-d:以后台模式运行容器。 -
--name mongodb:将容器命名为mongodb。 -
-p 27017:27017:将主机的27017端口映射到容器的27017端口。 -
-e MONGO_INITDB_ROOT_USERNAME=root:初始化数据库时使用的管理员用户名。 -
-e MONGO_INITDB_ROOT_PASSWORD=root_password:初始化数据库时使用的管理员密码。 -
-v /www/app/data/db:/data/db:将主机上的/www/app/data/db目录挂载到容器内的/data/db目录。 -
mongodb/mongodb-community-server:latest:使用最新的官方MongoDB社区版镜像。
三、进入MongoDB容器的Shell
为了进一步操作MongoDB,我们可以进入容器的Shell环境。执行以下命令:
sudo docker exec -it mongodb mongosh --username root --password root_password
此命令将会启动一个交互式的MongoDB shell,并使用我们之前设置的管理员账号进行登录。
四、为数据库创建用户
在MongoDB shell中,我们可以为特定的数据库创建新用户。假设我们要在db_name数据库中创建一个用户,可以执行以下命令:
use db_name;
db.createUser({user: "db_username", pwd: "db_password", roles: [{role: "dbOwner", db: "db_name"}]});
这段JavaScript代码做了以下几件事:
-
use db_name;:选择要操作的数据库。 -
db.createUser(...):创建一个新用户,赋予该用户对指定数据库的完全控制权限(dbOwner角色)。
五、测试连接
为了确认我们的新用户能够成功连接到数据库,我们可以使用以下命令进行测试:
sudo docker exec -it mongodb mongosh -u "db_username" -p "db_password" --authenticationDatabase "db_name"
如果一切配置正确,该命令将会启动一个新的MongoDB shell,并使用我们刚刚创建的用户进行登录。
通过以上步骤,我们已经成功地在Docker中部署了MongoDB,并且创建了一个具有管理权限的新用户。希望这篇技术分享文章对你有所帮助!