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

使用Docker部署MongoDB

使用Docker部署MongoDB

使用Docker部署MongoDB是一种快速、便捷的方式,以下是详细步骤:

1. 基本部署

拉取MongoDB镜像

docker pull mongo:latest

运行MongoDB容器(最简单方式)

docker run --name mongodb -d -p 27017:27017 mongo

2. 带持久化存储的部署

docker run --name mongodb \-v /path/on/host:/data/db \-d -p 27017:27017 \mongo

3. 带认证的部署

首次运行(无认证)创建管理员用户

docker run --name mongodb \-d -p 27017:27017 \mongo --auth

进入容器创建用户

docker exec -it mongodb mongosh admin# 在MongoDB shell中创建用户
db.createUser({ user: 'admin', pwd: 'yourpassword', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] 
})

带认证的完整部署命令

docker run --name mongodb \-e MONGO_INITDB_ROOT_USERNAME=admin \-e MONGO_INITDB_ROOT_PASSWORD=yourpassword \-d -p 27017:27017 \mongo --auth

4. 使用Docker Compose部署

创建docker-compose.yml文件:

version: '3.8'services:mongodb:image: mongo:latestcontainer_name: mongodbenvironment:- MONGO_INITDB_ROOT_USERNAME=admin- MONGO_INITDB_ROOT_PASSWORD=yourpasswordports:- "27017:27017"volumes:- mongodb_data:/data/dbrestart: unless-stoppedvolumes:mongodb_data:

然后运行:

docker-compose up -d

5. 高级配置

自定义配置文件

# 创建配置文件目录
mkdir -p /path/to/mongodb/config# 创建配置文件
echo "storage:journal:enabled: true
security:authorization: enabled" > /path/to/mongodb/config/mongod.conf# 运行容器
docker run --name mongodb \-v /path/to/mongodb/config:/etc/mongo \-v /path/to/mongodb/data:/data/db \-d -p 27017:27017 \mongo --config /etc/mongo/mongod.conf

副本集部署(开发环境)

# 启动三个MongoDB实例
docker run --name mongo1 -d -p 27017:27017 mongo --replSet rs0 --bind_ip_all
docker run --name mongo2 -d -p 27018:27017 mongo --replSet rs0 --bind_ip_all
docker run --name mongo3 -d -p 27019:27017 mongo --replSet rs0 --bind_ip_all# 配置副本集
docker exec -it mongo1 mongosh --eval "rs.initiate({_id: 'rs0',members: [{_id: 0, host: 'mongo1:27017'},{_id: 1, host: 'mongo2:27017'},{_id: 2, host: 'mongo3:27017'}]
})"

6. 常用管理命令

查看运行中的容器

docker ps

查看MongoDB日志

docker logs mongodb

进入MongoDB shell

docker exec -it mongodb mongosh -u admin -p yourpassword

停止和启动容器

docker stop mongodb
docker start mongodb

删除容器

docker rm -f mongodb

7. 安全建议

  1. 生产环境务必启用认证

  2. 不要将MongoDB直接暴露在公网上

  3. 定期备份数据

  4. 考虑使用网络隔离

    docker network create mongo-network
    docker run --name mongodb --network mongo-network -d mongo
    
  5. 限制资源使用

    docker run --name mongodb --memory="2g" --cpus="1.0" -d mongo
    

通过Docker部署MongoDB可以快速搭建开发、测试环境,生产环境建议考虑更全面的配置和监控方案。

http://www.xdnf.cn/news/6137.html

相关文章:

  • 实验五:以太网UDP全协议栈的实现(通过远程实验系统)
  • Milvus 视角看重排序模型(Rerankers)
  • 说说C/C++结构体大小计算(内存对齐)
  • 【MyBatis-9】MyBatis分页插件PageHelper深度解析与实践指南
  • 朱老师,3518e系列,第二季
  • (3)python开发经验
  • nacos:服务注册原理
  • 我的多条件查询
  • MCP(一)——QuickStart
  • Java—— 可变参数、集合工具类、集合嵌套
  • Vue.js---嵌套的effect与effect栈
  • Maven构建流程详解:如何正确管理微服务间的依赖关系-当依赖的模块更新后,我应该如何重新构建主项目
  • D. Eating【Codeforces Round 1005 (Div. 2)】
  • Spring 中常见的属性注入方式(XML配置文件)
  • 单调栈简单习题分析
  • Web安全核心内容与常见漏洞总结
  • EasyConnect卸载大汇总
  • vulnhub靶场——secarmy
  • 动态多因子策略
  • RDD的自定义分区器
  • stm32 ADC单通道转换
  • 反射, 注解, 动态代理
  • 【PSINS工具箱】基于工具箱的单独GNSS导航、单独INS导航、两者结合组合导航,三种导航的对比程序。附完整的代码
  • 一文理解扩散模型(生成式AI模型)(2)
  • 使用 Docker Desktop 安装 Neo4j 知识图谱
  • VastBase的日常操作记录
  • Qt功能区:简介与安装
  • JS中本地存储(LocalStorage)和会话存储(sessionStorage)的使用和区别
  • vscode - 笔记
  • Deep Learning(手写字识别 - CNN)