当前位置: 首页 > news >正文

docker-compose 配置启动2个MongoDB

要将原配置扩展为启动两个独立的MongoDB容器,需要分别定义两个服务,每个服务使用不同的名称、端口、卷路径、环境变量和容器名称以避免冲突。以下是修改后的docker-compose.yml

version: '3'
services:# 第一个MongoDB服务mongo1:  # 服务名称改为mongo1image: mongocontainer_name: mongo_instance1  # 唯一容器名称restart: alwaysenvironment:MONGO_INITDB_ROOT_USERNAME: admin_user1  # 建议使用不同用户名MONGO_INITDB_ROOT_PASSWORD: secure_pass1  # 建议使用不同密码volumes:- /mnt/mongodb/data1:/data/db         # 数据目录1- /mnt/mongodb/backup1:/data/backup   # 备份目录1ports:- "27017:27017"  # 暴露到宿主机的端口(确保无冲突)command: ["--auth"]# 第二个MongoDB服务(在原mongo2基础上修改)mongo2:  image: mongocontainer_name: mongo_instance2  # 唯一容器名称restart: alwaysenvironment:MONGO_INITDB_ROOT_USERNAME: admin_user2  # 不同用户名MONGO_INITDB_ROOT_PASSWORD: secure_pass2  # 不同密码volumes:- /mnt/mongodb/data2:/data/db         # 原配置的数据目录- /mnt/mongodb/backup2:/data/backup   # 原配置的备份目录ports:- "27018:27017"  # 保持原宿主机端口27018command: ["--auth"]

关键修改说明:

  1. 服务分离

    • 创建两个独立服务 mongo1mongo2
    • 每个服务拥有唯一的container_namemongo_instance1mongo_instance2
  2. 避免端口冲突

    • mongo1 使用宿主机端口 27017 → 容器端口 27017
    • mongo2 保持原宿主机端口 27018 → 容器端口 27017
  3. 独立存储卷

    • 为每个容器分配独立的数据目录(/mnt/mongodb/data1/data2
    • 独立备份目录(/mnt/mongodb/backup1/backup2
  4. 安全隔离

    • 为每个实例设置不同的用户名密码(避免权限交叉)

启动命令:

docker-compose up -d  # 同时启动两个容器

连接示例:

  • 连接第一个MongoDB:
    mongodb://admin_user1:secure_pass1@localhost:27017
  • 连接第二个MongoDB:
    mongodb://admin_user2:secure_pass2@localhost:27018

⚠️ 重要:确保宿主机目录(如/mnt/mongodb/data1)已提前创建且权限正确(chmod 757),否则容器可能无法启动。

http://www.dtcms.com/a/280120.html

相关文章:

  • SQL 常用版本语法概览:标准演进与关键语法分析
  • bat 批处理实现 FFmpeg 命令导出 mov 到 png 序列帧
  • 新版本PyCharm Conda环境设置 “找不到conda可执行文件”的解决
  • Git分支管理与工作流详解
  • 记录一条sql面试题2
  • MyBatis动态语法标签速查
  • Fastapi框架总览与核心架构
  • iOS App 上架工具选型与跨平台开发 iOS 上架流程优化实录
  • 深入探讨Hadoop YARN Federation:架构设计与实践应用
  • Datawhale AI数据分析 笔记
  • 2025开放原子开源生态大会 | openKylin的技术跃迁和全球协作
  • 回顾一下Docker的基本操作
  • Linux部署Python服务
  • 面向医疗AI场景的H20显卡算力组网方案
  • 2025开放原子开源生态大会 | 开源欧拉的AI原生实践与全球协作
  • 应用部署作业-02-流程
  • 第十四章 Stream API
  • 深度强化学习 | 图文详细推导深度确定性策略梯度DDPG算法
  • 波动回升正当时!期权合成多头:震荡市攻守兼备利器
  • 深入解析环境变量:从基础概念到系统级应用
  • 用uniapp开发鸿蒙应用(暂停更新-根据项目更新,现在项目未开始)
  • QT简介和QT环境搭建
  • JVM——JVM 的内存区域是如何划分的?
  • Go从入门到精通(24) - 一个简单web项目-添加redis缓存
  • 教育培训机构如何为课程视频添加防盗录的强水印?
  • IPM31主板E3300usb键盘鼠标安装成功Sata接口硬盘IDE模式server2003-nt-5.2.3790
  • AI生成代码示例
  • 【自学linux】计算机体系结构和操作系统第二章
  • LangChain面试内容整理-知识点18:Chroma 向量数据库集成
  • 3.1k star!推荐一款开源基于AI实现的浏览器自动化插件工具 !