Docker-应用部署-部署 MongoDB

本文详细介绍如何使用Docker容器部署MongoDB数据库服务,并通过六个关键步骤指导完成配置及外部访问测试。首先从搜索MongoDB镜像开始,到创建容器并进行端口映射,再进一步创建用户和数据库,最后验证服务的可用性。

需求

需求:在 Docker 容器中部署 Redis,并通过外部机器访问 Redis

操作步骤

  • 1、搜索 MongoDB 镜像
  • 2、拉取 MongoDB 镜像
  • 3、创建容器,设置端口映射
  • 4、创建用户
  • 5、创建数据库并授权
  • 6、测试访问

1、搜索 MongoDB 镜像

docker search mongo

2、拉取 MongoDB 最新镜像

docker pull mongo:latest

3、创建容器,设置端口映射

docker run -id --name=c_mongo -p 27017:27017 mongo

4、创建用户

# 进入容器里
docker exec -it mongo /bin/bash
# 进入 mongodb 命令行模式
mongo admin
# 创建一个名为 admin,密码为 123456 的用户
> db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
# 尝试使用上面创建的用户信息进行连接。
> db.auth('admin', '123456')

5、创建数据库并授权

> use health;
> db.createUser({ user:'health_user',pwd:'123456',roles:[ { role:'readWrite', db: 'health'}]});

6、测试访问

在这里插入图片描述

### 使用 Docker Compose 部署 MongoDB 的最佳实践 #### 准备工作环境 为了确保顺利部署,建议先准备好必要的文件结构和配置。可以参照如下方式创建项目目录以及子目录用于存储数据、日志和配置文件: ```bash mkdir -p /opt/docker-data/mongodb/{data,log,config} chmod -R 777 /opt/docker-data/mongodb/ ``` 上述命令会创建三个主要的挂载点来保存持久化数据、日志记录及自定义配置[^3]。 #### 编写 `docker-compose.yml` 文件 编写一个合适的 `docker-compose.yml` 文件对于成功搭建 MongoDB 至关重要。下面是一个简单的单实例 MongoDB 设置例子: ```yaml version: '3' services: mongodb: image: mongo:latest container_name: mongodb_container environment: MONGO_INITDB_ROOT_USERNAME: adminUser MONGO_INITDB_ROOT_PASSWORD: examplePassword ports: - "27017:27017" volumes: - /opt/docker-data/mongodb/data:/data/db - /opt/docker-data/mongodb/log:/var/log/mongodb - /opt/docker-data/mongodb/config:/etc/mongoconf command: mongod --auth --bind_ip_all restart: always ``` 此配置指定了镜像版本、容器名称、初始化用户名密码等参数,并通过 `-v` 参数实现了主机与容器间的卷映射以便于数据持久化和管理[^2]。 #### 创建启动脚本 (可选) 虽然可以直接利用 `docker-compose up -d` 来启动服务,但如果希望进一步简化操作流程或加入额外逻辑处理(比如自动创建所需目录),则可以考虑准备一个 Bash 脚本来辅助完成这些任务。例如名为 `start_mongodb.sh` 的脚本可能看起来像这样: ```bash #!/bin/bash # 自动创建所需的本地路径 if [ ! -d "/opt/docker-data/mongodb/data" ]; then mkdir -p /opt/docker-data/mongodb/data && chmod -R 777 /opt/docker-data/mongodb/data fi if [ ! -d "/opt/docker-data/mongodb/log" ]; then mkdir -p /opt/docker-data/mongodb/log && chmod -R 777 /opt/docker-data/mongodb/log fi if [ ! -d "/opt/docker-data/mongodb/config" ]; then mkdir -R 777 /opt/docker-data/mongodb/config fi # 启动MongoDB服务 cd $(dirname $0) && docker-compose up -d ``` 这个脚本会在首次运行前检查并建立必要目录,之后调用 `docker-compose` 命令以守护进程模式启动应用[^4]。 #### 执行部署过程 当一切就绪后,在包含 `docker-compose.yml` 和其他资源文件的同一目录下执行以下指令即可快速启动 MongoDB 实例: ```bash sh start_mongodb.sh ``` 或者直接使用 `docker-compose` 工具链中的命令来进行控制: - **启动**:`docker-compose -f docker-compose.yml up -d` - **重启**:`docker-compose -f docker-compose.yml restart` - **停止**:`docker-compose -f docker-compose.yml stop` - **删除容器**:`docker-compose -f docker-compose.yml rm` 以上方法适用于大多数场景下的 MongoDB 单机版安装;而对于更复杂的多节点集群架构,则需按照官方文档调整相应的网络策略和服务发现机制[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员陈_明勇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值