Docker 安装 Mongo

创建宿主机目录

在你的宿主机上创建必要的目录来存储 MongoDB 的数据和配置文件。这样做可以保证即使容器被删除,数据也能得到保留。

mkdir -p /develop/mongo/data
mkdir -p /develop/mongo/config

创建 MongoDB 配置文件

创建一个名为 mongod.conf 的 MongoDB 配置文件,并保存在 /develop/mongo/config 目录中。这个文件可以用来设置 MongoDB 的运行参数,比如绑定的 IP 地址、端口号和安全设置等。

# /develop/mongo/config/mongod.conf
storage:dbPath: /data/db
net:bindIp: 0.0.0.0port: 27017
security:authorization: enabled

使用 Docker 运行 MongoDB

拉取社区版镜像:

docker pull mongodb/mongodb-community-server:latest

使用以下命令来启动 MongoDB 容器,映射数据和配置文件到宿主机指定的目录。

docker run --name mongodb \-v /develop/mongo/data:/data/db \-v /develop/mongo/config/mongod.conf:/etc/mongo/mongod.conf \-p 27017:27017 \-d mongo \--config /etc/mongo/mongod.conf

命令参数解释:

  • --name mongodb:设置 Docker 容器的名称为 mongodb
  • -v /develop/mongo/data:/data/db:将宿主机的 /develop/mongo/data 目录映射到容器的 MongoDB 数据目录 /data/db
  • -v /develop/mongo/config/mongod.conf:/etc/mongo/mongod.conf:将宿主机的配置文件 mongod.conf 映射到容器的 /etc/mongo/mongod.conf
  • -p 27017:27017:将容器的 27017 端口映射到宿主机的 27017 端口,这允许从宿主机访问 MongoDB。
  • -d mongo:以 detached(后台)模式运行 mongo 镜像。
  • --config /etc/mongo/mongod.conf:启动时使用指定的配置文件。

创建超级管理员用户

安装 mongo shell:

sudo yum install -y mongodb-mongosh

进入 MongoDB 容器:

docker exec -it mongodb mongosh

然后,在 MongoDB 的命令行界面中,使用以下命令创建管理员用户:

use admin
db.createUser({user: "admin",pwd: "your_secure_password",roles: [{ role: "root", db: "admin" }]
})

确保将 "your_secure_password" 替换成一个强密码。

配置外部访问和安全性

确保你的 mongod.conf 文件配置了安全选项(如上所述)。此外,为了增强安全性,你可以配置更复杂的认证选项,例如使用 X.509 证书等。

重新启动 MongoDB 容器

修改配置文件或创建用户后,需要重启 MongoDB 容器以应用更改:

docker restart mongodb

开启防火墙端口

防火墙设置:如果你的服务器有防火墙,请确保开放 27017 端口,以便可以远程访问 Mongo。

# 添加端口规则:
sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent# 重新加载防火墙规则:
sudo firewall-cmd --reload# 验证端口是否开启:
sudo firewall-cmd --zone=public --list-ports

连接测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/828464.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RestfulApi RestTemplate代码规范介绍

1.介绍 1.1 RestfulApi Restful API 是一种设计风格,代表了使用 HTTP 协议构建 web 服务的一种架构原则。REST(Representational State Transfer)的核心思想是,通过 URL 定位资源,使用 HTTP 方法(GET, POS…

C++中容易遗忘的知识点一

文章目录 前言一、数据类型二、运算符按位运算符 三、分支和循环四、数组五、字符串六、结构体七、指针const和指针:看const在 * 哪一边 总结 前言 C语法基础,涉及牛客网上刷题 一、数据类型 1.一个字节8位 2.int是2个字节,float是4个字节…

MySQL多版本并发控制mvcc原理浅析

文章目录 1.mvcc简介1.1mvcc定义1.2mvcc解决的问题1.3当前读与快照读 2.mvcc原理2.1隐藏字段2.2版本链2.3ReadView2.4读视图生成原则 3.rc和rr隔离级别下mvcc的不同 1.mvcc简介 1.1mvcc定义 mvcc(Multi Version Concurrency Control),多版本并发控制,是…

golang学习笔记(defer基础知识)

什么是defer defer语句用于golang程序中延迟函数的调用, 每次defer都会把一个函数压入栈中, 函数返回前再把延迟的函数取出并执行。 为了方便描述, 我们把创建defer的函数称为主函数, defer语句后面的函数称为延迟函数。延迟函数…

npm常用的命令大全(2024-04-21)

nodejs中npm常见的命令 npm主要是node包管理和发布的工具。 npm官网网址:npm | Homehttps://www.npmjs.com/官网英文文档: npm DocsDocumentation for the npm registry, website, and command-line interfacehttps://docs.npmjs.com/about-npm官网中文文…

同城便民信息小程序源码系统:相亲交友+拼车顺风车功能 带完整的安装代码包以及搭建教程

在信息化、数字化的时代,人们的生活越来越离不开各种智能应用。其中,小程序作为一种轻量级、便捷的应用形式,正逐渐渗透到我们日常生活的方方面面。今天,我们要介绍的这款“智慧同城便民信息小程序源码系统”,不仅集成…

SQL仓库

1. 查表中数据个数 select count(*) from table_name where condition 2. 删除表中数据 delete from table_name where condition 3.筛选符合条件数据并且将结果根据条件公式求和 SELECTsum(case when transaction_state B then transaction_amountwhen transaction_stat…

.cn是几级域名?

.cn是中国的国家顶级域名(ccTLD),在互联网域名系统中起着重要的作用。在本文中,我们将重点探讨.cn域名的层次结构和级别,并解释每个级别的含义和应用。 一、域名的层次结构 域名采用了一种典型的层次结构&#xff0c…

基于享元模式实现连接池

享元模式 结构 享元(Flyweight )模式中存在以下两种状态: 1. 内部状态,即不会随着环境的改变而改变的可共享部分。 2. 外部状态,指随环境改变而改变的不可以共享的部分。享元模式的实现要领就是区分应用中的这两 种…

jitpack发布,记录一个异常

异常日志(全文): Init SDKMan Found Android manifest Android SDK version: . Build tools: Found gradle Gradle build script WARNING: gradle/wrapper/gradle-wrapper.jar does not exist! Needs to be committed.ERROR: Gradle wrapper not found. Please ad…

每日一题:跳跃游戏II

给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j < nums[i] i j < n 返回到达 nums[n - 1] 的最…

CAS机制(Compare And Swap)源码解读与三大问题

&#x1f3f7;️个人主页&#xff1a;牵着猫散步的鼠鼠 &#x1f3f7;️系列专栏&#xff1a;Java源码解读-专栏 &#x1f3f7;️个人学习笔记&#xff0c;若有缺误&#xff0c;欢迎评论区指正 目录 1. 前言 2. 原子性问题 3. 乐观锁与悲观锁 4. CAS操作 5. CAS算法带来的…

西米支付:支付行业中,“清算、结算、清结算”之间的区别

做支付最头疼的三个词莫过于“清算、结算、清结算”&#xff0c; 傻傻分不清&#xff0c;偶尔清晰偶尔混沌&#xff0c;有时候吧觉得自己很清晰了&#xff0c;突然跟别人聊天或者看书、看文章时又觉得糊涂起来了&#xff0c;在一些场景里好像很清晰&#xff0c;但是到了另一些…

构建二叉树搜索树算法题总结(第三十天)

701. 二叉搜索树中的插入操作 题目 给定二叉搜索树&#xff08;BST&#xff09;的根节点 root 和要插入树中的值 value &#xff0c;将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据 保证 &#xff0c;新值和原始二叉搜索树中的任意节点值都不同。 答案 cla…

几种免费SSL证书申请方式

目录 DV单域名免费证书的获取渠道&#xff1a; DV多域名免费证书获取渠道&#xff1a; DV通配符免费证书获取渠道&#xff1a; 随着现在网络安全意识的逐渐提升&#xff0c;越来越多的网站都在相继配对部署SSL证书&#xff0c;用以实现https访问。 大家都知道SSL证书好&…

数据分析学习资源(未完)

1、PDF 数据分析自学攻略 增长黑客&#xff08;AARRR&#xff09; 量化思维

异步并发怎么做?

异步并发 1、flask的异步并发问题解决办法实现方案&#xff08;1&#xff09;flask 异步视图装饰器&#xff08;2&#xff09;WSGI启动服务 2、fastapi异步编程 1、flask的异步并发 问题 flask在开发环境下是单线程的&#xff0c;如果某个请求长时间无响应&#xff08;阻塞&…

面试——数据库中的锁升级(Lock Escalation)机制

假设执行下面的sql语句 update tb_user set age age 1;以MySQL为例&#xff0c;按照两阶段锁协议&#xff0c;会先给tb_user加上表意向锁&#xff0c;然后对tb_user的所有行加上行锁&#xff0c;但是当tb_user数据量非常多的时候&#xff0c;频繁的获取行锁会影响性能&#…

idea启动之java.net.BindException: Address already in use: bind

背景&#xff1a; 在win10上安装docker desktop 后&#xff0c;重启电脑&#xff0c;打开idea&#xff0c;提示端口被占用。 一、遇到的问题 打开idea2022.3.3提示以下提示&#xff1a; Internal error. Please refer to https://jb.gg/ide/critical-startup-errorsjava.ne…