Files
chill_notes/Docker/Docker 部署 MongoDB.md
2026-04-21 20:00:16 +08:00

115 lines
2.0 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Docker 部署 MongoDB
## 1. 下载 MongoDB 镜像
```bash
docker pull mongo:latest
# 查看已下载的镜像
docker images mongo
```
## 2. 启动 MongoDB 容器
```bash
docker run -d \
--name mongodb \
-p 27017:27017 \
-v $PWD/data:/data/db \
mongo:latest
```
### 参数说明
| 参数 | 说明 |
|------|------|
| `-d` | 后台运行 |
| `--name mongodb` | 容器名称 |
| `-p 27017:27017` | 端口映射(主机:容器) |
| `-v $PWD/data:/data/db` | 数据卷挂载,持久化存储 |
## 3. 配置认证(可选,推荐)
```bash
# 创建管理员账号
docker exec -it mongodb mongosh admin
# 在 mongosh 中执行
db.createUser({
user: "admin",
pwd: "你的密码",
roles: [{ role: "root", db: "admin" }]
})
# 退出
exit
```
### 带认证启动
```bash
docker stop mongodb
docker rm mongodb
docker run -d \
--name mongodb \
-p 27017:27017 \
-v $PWD/data:/data/db \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=你的密码 \
mongo:latest --auth
```
## 4. 连接测试
```bash
# 方式一:使用 mongosh 连接
docker exec -it mongodb mongosh --host 127.0.0.1
# 方式二:从另一容器连接
docker run -it --rm \
--link mongodb:mongo \
mongo:latest \
mongosh --host mongo
# 方式三:从主机连接(需要安装 mongosh
mongosh mongodb://admin:密码@localhost:27017
```
看到以下提示说明部署成功:
```
It looks like you are trying to access MongoDB over HTTP on the native driver port.
```
## 5. 常用管理命令
```bash
# 查看容器状态
docker ps | grep mongodb
# 查看日志
docker logs -f mongodb
# 进入容器
docker exec -it mongodb bash
# 停止/启动
docker stop mongodb
docker start mongodb
```
## 6. 数据备份与恢复
```bash
# 备份(数据在挂载的 $PWD/data 目录中)
tar -czvf mongodb-backup-$(date +%Y%m%d).tar.gz data/
# 恢复
tar -xzvf mongodb-backup-xxxxxxxx.tar.gz
```
---
> 参考:[MongoDB Docker 官方文档](https://hub.docker.com/_/mongo)