Update from Sync Service
This commit is contained in:
114
Docker/Docker部署MongoDB.md
Executable file
114
Docker/Docker部署MongoDB.md
Executable file
@@ -0,0 +1,114 @@
|
||||
# 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)
|
||||
Reference in New Issue
Block a user