下面是一份 基于 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