烹饪考试试卷哪个网站可以做,建设网站需要下载神呢软件吗,一个网站的首页包括什么,jsp做网站遇到的问题文章目录 00 安装前的准备01 创建Docker Compose文件02 设置证书文件03 启动MongoDB04 初始化副本集和创建用户05 验证安装 00 安装前的准备
在开始之前#xff0c;确保已经安装了Docker#xff0c;本文基于Docker Compose进行示范#xff0c;没有装Docker Compose也可将其… 文章目录 00 安装前的准备01 创建Docker Compose文件02 设置证书文件03 启动MongoDB04 初始化副本集和创建用户05 验证安装 00 安装前的准备
在开始之前确保已经安装了Docker本文基于Docker Compose进行示范没有装Docker Compose也可将其中的docker-compose命令转换为docker run命令执行。
01 创建Docker Compose文件
首先新建一个名为mongo的目录并在其中创建一个名为docker-compose.yml的文件并写入以下内容
version: 3.8
services:mongo:image: mongo:latestcontainer_name: mongocommand: --auth --bind_ip_all --replSet rs0 --keyFile /data/mongodb/keyFileports:- 27017:27017volumes:- ./data:/data/db- ./conf:/data/configdb- ./backup:/data/backup- ./keyFile:/data/mongodb/keyFile这个配置会启动一个MongoDB容器使用最新的MongoDB镜像并将容器命名为mongo。
命令解释 command: --auth --bind_ip_all --replSet rs0 --keyFile /data/mongodb/keyFile: 这是传递给MongoDB服务器的命令行参数。 --auth: 开启身份验证。--bind_ip_all: 允许MongoDB绑定到服务器上的所有IP地址。--replSet rs0: 初始化一个名为rs0的副本集。--keyFile /data/mongodb/keyFile: 指定用于副本集成员之间身份验证的密钥文件路径。 ports:: 这部分定义了容器和宿主机之间的端口映射。 27017:27017: 将容器的27017端口映射到宿主机的27017端口。MongoDB默认使用27017端口。 volumes:: 这部分定义了宿主机和容器之间的数据卷映射用于数据持久化和配置管理。 ./data:/data/db: 将宿主机当前目录下的data文件夹映射到容器的/data/db路径用于存储MongoDB的数据文件。./conf:/data/configdb: 将宿主机的conf文件夹映射到容器的/data/configdb路径通常用于存放MongoDB的配置文件。./backup:/data/backup: 将宿主机的backup文件夹映射到容器的/data/backup路径用于存储备份文件。./keyFile:/data/mongodb/keyFile: 将宿主机的keyFile文件映射到容器的/data/mongodb/keyFile路径这是副本集认证所需的密钥文件。
02 设置证书文件
为了安全性和配置副本集需要创建一个证书文件。在存放docker-compose.yml的mongo目录下运行以下命令来生成证书文件
# 生成一个756字节的自签名证书
openssl rand -base64 756 ./keyFile
# 赋予该证书400权限
chmod 400 ./keyFile
# 更改文件的所有者和群组
chown 999:999 ./keyFileMongoDB是以用户ID 999运行的更改keyFile的所有者和群组为UID和GID 999以确保MongoDB进程能够访问该文件。
必需要完成权限设置和访问组设置否则MongoDB无法正常启动。
03 启动MongoDB
使用以下命令来启动MongoDB服务
# 拉取镜像
docker-compose pull
# 启动容器
docker-compose up -d
# 停止容器
# docker-compose down启动完成后该目录
04 初始化副本集和创建用户
进入到MongoDB容器并初始化副本集
# 进入容器 这里的mongo是容器名称 mongosh是脚本命令
docker exec -it mongo mongosh
# 进入容器后 执行初始化带 符号说明是在容器内操作并非命令的一部分rs.initiate()然后创建管理员用户
# 切换数据库use admin
# 创建管理员用户db.createUser({user:admin, pwd:admin123456, roles:[{role: userAdminAnyDatabase, db:admin}]});
# 用户认证登录db.auth(admin, admin123456)接下来切换到printing账户并创建一个具有读写权限的用户
# 切换数据库use printing
# 创建一个用户db.createUser({user: lily, pwd: lily1997, roles: [{role:readWrite, db: printing}]});
# 先退出exit05 验证安装
最后验证用户是否可以成功连接并认证
# 进入容器
docker exec -it mongo mongosh
# 切换数据库use printing
# 用户认证登录db.auth(lily, lily1997)通过以上步骤我们成功在Linux服务器上使用Docker安装并配置了MongoDB。开启了单副本支持事务。