docker安装mongo教程
创建 MongoDB 容器:
拉取mongo镜像并启动
docker run -d \
--name mongo \
-p 27017:27017 \
-v /root/data/docker/mongo:/data/db \
--network host \
-e MONGO_ROOT_USERNAME=root \
-e MONGO_ROOT_PASSWORD=main-docker-mnogo \
mongo
参数说明:
-d
:后台运行容器。--name mongo
:容器名称为mongo
。-p 27017:27017
:将容器内的 MongoDB 端口 27017 映射到主机的 27017 端口。-v /root/data/docker/mongo
:将宿主机/root/data/docker/mongo
映射到容器内的/data/db
目录,用来存储 MongoDB 数据。--network host
:允许容器通过宿主机的网络接口进行通信。-e MONGO_ROOT_USERNAME=root
和-e MONGO_ROOT_PASSWORD=main-docker-mnogo
:设置 MongoDB 的根用户和密码。
查看时候启动成功:
docker ps | grep mongo
开启远程访问:
进入容器
docker exec -it mongo bash
因为容器中没有vi或者vim等编辑文件命令,因此这里用sed命令
sed -i 's/bindIp: 127.0.0.1/bindIp: 0.0.0.0/' /etc/mongod.conf.orig
退出容器后,重启mongo
docker exec -it mongo bash
注意防火墙,查看防火墙状态
systemctl status firewalld
查看当前配置的防火墙规则
firewall-cmd --list-all
关闭防火墙(不推荐,除非你确认不需要)
systemctl stop firewalld
如果不希望防火墙开机启动:
systemctl disable firewalld
创建用户:
进入容器
docker exec -it mongo bash
使用mongosh
命令连接数据库
切换到
admin
数据库:
use admin
创建一个具有 root
角色的用户,授予对所有数据库的访问权限。以下命令会为该用户赋予对所有数据库的完全权限:
db.createUser({
user: "newUser",
pwd: "newPassword",
roles: [{ role: "root", db: "admin" }]
})
newUser
是你创建的用户名。newPassword
是该用户的密码。root
角色授予对所有数据库的完全权限。db: "admin"
指定角色在admin
数据库中
创建用户后,可以通过以下命令验证用户是否创建成功:
show users
现在,
newUser
用户已经被赋予了对所有数据库的完全访问权限。
简单语句
创建数据库
MongoDB 会在你第一次插入数据时自动创建数据库。要选择数据库,可以使用 use
命令:
use main
插入数据
如果 myDatabase
不存在,它会在你插入数据时创建。你也可以插入一些数据来正式创建数据库:
db.myCollection.insertOne({ name: "example" })
查询全部文档
db.myCollection.find()