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()

客户端连接