mongo docker 部署

镜像拉取(最新的镜像拉取后显示异常)

sudo docker pull mongo:5.0.15

 镜像启动:

sudo docker run -d -p 27017:27017 --name mongo5  mongo:5.0.15

 数据卷映射:

用户密码设置:

#admin进入

docker exec -it 10b15378e5ae mongo admin

#创建用户和密码

db.createUser({ user: 'admin', pwd: '123456', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });

#验证一下对不对

db.auth("admin","123456");

#退出

exit

#修改密码

use admin;

switched to db admin > db.changeUserPassword('admin','88889999');

### 使用 Docker 部署 MongoDB 的教程 #### 创建并运行 MongoDB 容器 可以通过 `docker run` 命令来创建并启动一个 MongoDB 容器。以下是一个基本的例子,其中指定了容器名称、端口映射以及挂载的数据卷: ```bash sudo docker run --name mongodb -d -p 27017:27017 -v /data/db:/data/db mongo ``` 这条命令的作用是创建名为 `mongodb` 的容器,并将其内部的 27017 端口映射到宿主机的相同端口上,同时将宿主机上的 `/data/db` 目录挂载至容器内的 `/data/db` 路径用于存储数据[^1]。 #### 数据库持久化配置 为了实现更灵活的数据管理,可以使用 Docker 提供的 Volume 功能来进行数据持久化操作。以下是具体步骤: 先创建一个新的 Volume: ```bash docker volume create mongo_local_data ``` 接着利用该 Volume 来启动新的 MongoDB 实例: ```bash docker run --name my_mongo -v mongo_local_data:/data/db --rm -d -p 27017:27017 mongo:4.4.11 ``` 这里 `-v mongo_local_data:/data/db` 表示把之前建立好的 Volume 绑定到了容器中的默认数据库路径下[^2]。 #### 开启认证机制 如果希望增强安全性,则可以在启动时加入额外参数以启用用户验证服务。下面展示了一个包含这些选项在内的完整实例定义方式: ```bash docker run -d \ --name mongo \ -p 27017:27017 \ -v /data/mongo/db:/data/db \ --restart unless-stopped \ mongo:latest ``` 此脚本除了常规设置外还增加了 `--restart unless-stopped` 参数确保即使系统重启也能自动恢复工作状态[^3]。 #### 利用 Compose 文件简化多组件环境搭建过程 对于复杂场景下的应用开发来说,单独依靠单条命令可能无法满足需求。这时就可以考虑采用官方推荐的方式——编写 YAML 格式的 compose 文件完成整个项目的快速部署。例如: ```yaml version: '3' services: mongo: image: mongo:latest # 指定 MongoDB 版本 >= 3.6 container_name: mongo-replica restart: always command: ["mongod", "--replSet", "rs0", "--oplogSize", "128", "--bind_ip_all"] ports: - 27017:27017 volumes: - ./mongo_data:/data/db environment: MONGO_INITDB_ROOT_USERNAME: root # 初始化MongoDb管理员用户名 MONGO_INITDB_ROOT_PASSWORD: example # 初始化MongoDb的管理员密码 ``` 之后只需要简单执行一条指令即可让所有设定生效: ```bash docker-compose up -d ``` 这种方法不仅能够减少重复劳动量而且便于维护更新[^4]。 #### 自定义配置文件加载支持 某些情况下我们还需要引入外部定制化的 conf 或 log 设置以便更好地控制行为表现形式。那么就需要进一步扩展之前的方案如下所示: ```bash docker run -dit --name mongodb -p 27019:27017 \ -v /home/bigdata/mongodb_bigdata/data:/data/db \ -v /home/bigdata/mongodb_bigdata/conf:/data/configdb \ -v /home/bigdata/mongodb_bigdata/logs:/data/log/ \ --restart always -d mongo ``` 上述方法允许我们将本地磁盘上的多个子目录分别关联起来从而达到目的[^5]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

会发paper的学渣

您的鼓励和将是我前进的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值