115 lines
2.0 KiB
Markdown
Executable File
115 lines
2.0 KiB
Markdown
Executable File
# 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)
|