下面是一份 基于 Docker 的 MongoDB 部署与使用指南(适用于 Windows / macOS / Linux),手把手教你从零开始:
🧩 一、环境准备
1. 安装 Docker
- Windows/macOS 用户:下载并安装 Docker Desktop
- 打开 Docker Desktop,确保右下角 “Docker Engine is running”
- Linux 用户:执行以下命令安装(以 Ubuntu 为例):
sudo apt update sudo apt install docker.io -y sudo systemctl enable docker --now
2. 验证 Docker 是否安装成功
docker version
出现 Client 与 Server 信息说明 Docker 已正确运行。
🧱 二、拉取 MongoDB 镜像
docker pull mongo:latest
可使用
mongo:6.0
或指定版本号。
🏗️ 三、启动 MongoDB 容器
1. 创建数据卷(可选但推荐)
docker volume create mongodb_data
数据卷可确保容器删除后数据仍保留。
2. 启动 MongoDB
docker run -d \
--name mongodb \
-p 27017:27017 \
-v mongodb_data:/data/db \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=123456 \
mongo:latest
参数说明:
-d
:后台运行--name
:容器名称-p
:映射本地端口(27017)-v
:绑定数据卷-e
:设置管理员账号与密码
🧭 四、验证 MongoDB 是否运行成功
docker ps
出现类似如下输出说明启动成功:
CONTAINER ID IMAGE COMMAND PORTS NAMES
f5a3bfcf12cd mongo:latest "docker-entrypoint.s…" 0.0.0.0:27017->27017/tcp mongodb
💻 五、连接 MongoDB
1. 进入容器内部连接
docker exec -it mongodb mongosh -u admin -p 123456
2. 外部连接(使用 MongoDB Compass)
- 打开 MongoDB Compass
- 在 “URI” 栏中输入:
mongodb://admin:123456@localhost:27017
- 点击 “Connect” 即可。
🧰 六、常用操作命令
操作 | 命令 |
---|---|
查看容器运行状态 | docker ps |
停止容器 | docker stop mongodb |
启动容器 | docker start mongodb |
删除容器 | docker rm -f mongodb |
查看日志 | docker logs mongodb |
进入容器 | docker exec -it mongodb bash |
🧾 七、使用 Docker Compose(推荐方式)
创建文件 docker-compose.yml
:
version: '3.8'
services:
mongodb:
image: mongo:latest
container_name: mongodb
ports:
- "27017:27017"
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: 123456
volumes:
- mongodb_data:/data/db
volumes:
mongodb_data:
运行:
docker-compose up -d
停止:
docker-compose down
📚 八、进阶用法
1. 初始化数据库和集合
创建文件 init.js
:
db = db.getSiblingDB('mydb');
db.createUser({
user: "myuser",
pwd: "mypassword",
roles: [{ role: "readWrite", db: "mydb" }]
});
db.createCollection("users");
修改 docker-compose.yml
:
volumes:
- mongodb_data:/data/db
- ./init.js:/docker-entrypoint-initdb.d/init.js:ro
启动后 MongoDB 会自动创建数据库与用户。
✅ 九、测试连接与操作
进入 Mongo Shell:
docker exec -it mongodb mongosh -u admin -p 123456
创建数据库与集合:
use mydb
db.users.insertOne({ name: "阿杰", age: 25 })
db.users.find()
🎯 十、清理环境
docker stop mongodb
docker rm mongodb
docker volume rm mongodb_data
发表回复