feat: v1.0.0 祀梦笔记:从 0 到 1 的数字化花园建设
This commit is contained in:
69
docs/notes/ops/docker/mongodb.md
Normal file
69
docs/notes/ops/docker/mongodb.md
Normal file
@@ -0,0 +1,69 @@
|
||||
---
|
||||
title: 使用 Docker 部署 MongoDB
|
||||
createTime: 2025/12/24 16:34:00
|
||||
permalink: /ops/docker/db/mongodb/
|
||||
---
|
||||
|
||||
本教程将介绍如何使用 Docker 快速部署一个 MongoDB 实例。
|
||||
|
||||
## 在 Ubuntu 上部署 MongoDB:4.2 实例
|
||||
|
||||
我们先拉取 MongoDB:4.2 镜像:
|
||||
|
||||
```bash
|
||||
docker pull mongo:4.2
|
||||
```
|
||||
|
||||
创建一个目录用于存储 MongoDB 数据:
|
||||
|
||||
```bash
|
||||
mkdir -p /data/mongo/
|
||||
```
|
||||
|
||||
启动 MongoDB 容器:
|
||||
```bash :wrap
|
||||
sudo docker run --restart=always -itd --name mongo -p 27018:27017 -v /data/mongo/:/data/db mongo:4.2 --auth
|
||||
```
|
||||
命令详解:
|
||||
- `--restart=always`:容器重启时自动启动。
|
||||
- `-itd`:交互式模式运行容器,后台模式。
|
||||
- `--name mongo`:为容器命名为 mongo。
|
||||
- `-p 27018:27017`:将主机的 27018 端口映射到容器的 27017 端口。
|
||||
- `-v /data/mongo/:/data/db`:将主机的 /data/mongo/ 目录挂载到容器的 /data/db 目录,用于持久化存储数据。
|
||||
- `mongo:4.2`:使用 MongoDB:4.2 镜像。
|
||||
- `--auth`:启用身份验证功能。
|
||||
|
||||
进入 MongoDB 容器:
|
||||
```bash
|
||||
docker exec -it mongo mongo admin
|
||||
```
|
||||
|
||||
### 在 MongoDB 容器中创建管理员用户
|
||||
先进入 admin 数据库
|
||||
```bash
|
||||
use admin;
|
||||
```
|
||||
创建管理员用户 admin, 密码 root, 角色为 root。
|
||||
```bash
|
||||
db.createUser( { user: "root", pwd: "root", roles:['root'] });
|
||||
```
|
||||
退出 MongoDB 容器:
|
||||
```bash
|
||||
exit
|
||||
```
|
||||
使用 root 用户进行登录
|
||||
```bash
|
||||
docker exec -it mongo mongo admin -u root -p root
|
||||
```
|
||||
这里还能创建一个 admin 用户,用密码 admin,角色为 readWriteAnyDatabase, dbAdminAnyDatabase。
|
||||
```bash
|
||||
db.createUser( { user: "admin", pwd: "admin", roles:['readWriteAnyDatabase','dbAdminAnyDatabase'] } );
|
||||
```
|
||||
验证用户,这里会登录到 admin
|
||||
```bash
|
||||
db.auth("admin","admin");
|
||||
```
|
||||
删除用户的话可以使用,注意这里要切换回 root 用户
|
||||
```bash
|
||||
db.dropUser("admin");
|
||||
```
|
||||
Reference in New Issue
Block a user