• Docker 安装 Mongo


    创建宿主机目录

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

    mkdir -p /develop/mongo/data
    mkdir -p /develop/mongo/config
    
    • 1
    • 2

    创建 MongoDB 配置文件

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

    # /develop/mongo/config/mongod.conf
    storage:
      dbPath: /data/db
    net:
      bindIp: 0.0.0.0
      port: 27017
    security:
      authorization: enabled
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    使用 Docker 运行 MongoDB

    拉取社区版镜像:

    docker pull mongodb/mongodb-community-server:latest
    
    • 1

    使用以下命令来启动 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    命令参数解释:

    • --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
    
    • 1

    进入 MongoDB 容器:

    docker exec -it mongodb mongosh
    
    • 1

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

    use admin
    db.createUser({
      user: "admin",
      pwd: "your_secure_password",
      roles: [{ role: "root", db: "admin" }]
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

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

    配置外部访问和安全性

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

    重新启动 MongoDB 容器

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

    docker restart mongodb
    
    • 1

    开启防火墙端口

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

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

    连接测试

  • 相关阅读:
    了解XSS攻击与CSRF攻击
    痞子衡嵌入式:浅谈i.MXRT10xx系列MCU外接24MHz晶振的作用
    java游戏制作-拼图游戏
    【git系列3/4】仓库(GitHub)上的项目的文件是什么换行符?同一个文件可以有不同换行符吗?
    HTML中华传统文化题材网页《中国民间年画》HTML+CSS+JavaScript
    虚拟机来安装Linux的优势
    Java 新手如何使用Spring MVC RestAPI的加密
    Kettle BIGNUMBER & TIMESTAMP 类型格式处理
    中文语法纠错开源大模型
    SpringBoot 3.3.1 + Minio 实现极速上传和预览模式
  • 原文地址:https://blog.csdn.net/ly1347889755/article/details/138044389