使用 Docker Compose 快速安装 MongoDB

一、准备工作

  1. 确保你的服务器/电脑已安装 DockerDocker Compose
  2. 创建一个专用文件夹(方便管理):
bash 复制代码
mkdir mongodb && cd mongodb

二、创建 docker-compose.yml 配置文件

mongodb 文件夹下创建 docker-compose.yml 文件,复制以下配置(支持用户名密码认证、数据持久化、端口映射):

yaml 复制代码
services:
  mongodb:
    # 官方MongoDB镜像
    image: mongo:latest
    # 容器名称
    container_name: mongodb
    # 重启策略:开机自启
    restart: always
    # 环境变量(配置用户名密码)
    environment:
      # 管理员用户名(自行修改)
      MONGO_INITDB_ROOT_USERNAME: admin
      # 管理员密码(务必修改为强密码)
      MONGO_INITDB_ROOT_PASSWORD: 123456
      # 初始化数据库名称
      MONGO_INITDB_DATABASE: admin
    # 端口映射:主机端口:容器端口
    ports:
      - "27017:27017"
    # 数据持久化(容器删除数据不丢失)
    volumes:
      - ./data:/data/db
      - ./config:/data/configdb
    # 关键配置:允许所有IP访问
    command: mongod --bind_ip 0.0.0.0

配置说明

  • image: mongo:latest:使用最新版 MongoDB,也可指定版本(如 mongo:6.0mongo:5.0
  • MONGO_INITDB_ROOT_USERNAME:超级管理员账号
  • MONGO_INITDB_ROOT_PASSWORD:超级管理员密码(必须修改
  • volumes:挂载本地目录,保证数据不会随容器删除而丢失
  • ports: 27017:27017:主机 27017 端口映射到容器 MongoDB 端口

三、启动 MongoDB

docker-compose.yml 所在目录执行命令:

bash 复制代码
# 后台启动(-d 表示守护进程)
docker compose up -d

四、常用管理命令

bash 复制代码
# 查看容器运行状态
docker compose ps

# 查看日志
docker compose logs -f

# 停止MongoDB
docker compose stop

# 重启MongoDB
docker compose restart

# 彻底删除容器(数据不会删除,因为挂载到本地了)
docker compose down

五、连接测试

1. 命令行连接(进入容器内部)

bash 复制代码
docker exec -it mongodb mongosh -u admin -p 123456

2. 可视化工具连接(Navicat/MongoDB Compass)

  • 主机:你的服务器IP
  • 端口:27017
  • 用户名:admin
  • 密码:123456
  • 认证数据库:admin

总结

  1. 只需创建一个 docker-compose.yml 配置文件
  2. 执行 docker compose up -d 一键启动
  3. 数据持久化、用户名密码、开机自启全部配置完成
  4. 支持命令行/可视化工具直接连接使用
相关推荐
知识分享小能手3 小时前
MongoDB入门学习教程,从入门到精通,MongoDB备份完全指南(23)
数据库·学习·mongodb
yxl_num3 小时前
Docker 完整部署一个包含 Spring Boot(依赖 JDK)、MySQL、Redis、Nginx 的整套服务
java·spring boot·docker
升职佳兴4 小时前
重启 Docker 导致 VMware 虚拟机断网:一次完整的故障排查记录
运维·docker·容器
HYNuyoah4 小时前
docker网站配置迁移(旧换新)
java·docker·容器
说实话起个名字真难啊5 小时前
Docker 入门之overlay网络
网络·docker·容器
老卢聊运维5 小时前
从零理解 CRD 与 Operator:如何扩展 Kubernetes
容器·kubernetes
刘~浪地球6 小时前
云原生与容器--Docker 容器化最佳实践
docker·云原生·容器
蓝天白云下遛狗6 小时前
关于多网卡情况下docker内部网络通讯研究
运维·docker·容器