本文假如您曾经在云服务器中胜利装置了 Docker 并下载了 mongo 镜像。
1. 创立配置文件
应用 Docker 部署 MongoDB 时,容器默认不会主动生成 mongod.conf
配置文件,须要开发者手动映射云服务器上的配置文件至容器外部,因而,咱们须要先创立一份配置文件,您能够任意抉择该文件的存储目录,这里咱们假如存储门路为 /mongo/mongod.conf
。
配置文件内容如下:
# 数据库存储门路
dbpath=/var/lib/mongodb
# 日志文件门路
logpath=/var/log/mongodb/mongod.log
# 监听的端口
port=27017
# 容许所有的 IP 地址连贯
bind_ip=0.0.0.0
# 启用日志记录
journal=true
# 启用身份验证
auth=true
🚨 留神
bind_ip
的设定十分重要,它使得咱们可能近程连贯数据库!
2. 创立 MongoDB 容器
应用如下 Docker 命令部署 MongoDB 容器:
docker run --name <your db name> \
-p <hostport>:27017 \
-v <config file address>:/etc/mongod.conf \
-v <dbpath>:/var/lib/mongodb \
-v <logpath>:/var/log/mongodb/mongod.log \
-d \
mongo \
--auth
请依照您的理论状况替换 <>
内的内容,在这条命令中,从上至下咱们制订了:
- 容器名;
- 云服务器与容器外部的端口映射;
- 配置文件映射;
- 数据存储门路映射;
- 日志门路映射;
- 长久化后盾运行;
- 镜像名称;
- 须要身份验证;
3. 创立身份信息
您须要应用 docker exec -it <your db name> mongosh
进入 MongoDB 数据库。
🚨 MongoDB v6 版本不再应用
mongod
命令作为客户端,而应用mongosh
!
应用上面的命令创立管理员账户:
use admin
db.createUser({user: "<username>", pwd: "<password>", roles: [{role: "root", db: "admin"}]})
应用管理员账户进行身份验证:
mongo -u <admin> -p <password> --authenticationDatabase admin
创立数据库与一般账号:
use <database_name>
db.createUser({user: "<username>", pwd: "<password>", roles: [{role: "readWrite", db: "<database_name>"}]})
4. 对外开放端口
咱们必须凋谢云服务器端口能力反对近程拜访,为此咱们须要先查看目前已凋谢端口(以后为 CentOS):
sudo firewall-cmd --list-all
而后凋谢指标端口,留神,需应用 --zone=docker
参数:
sudo firewall-cmd --zone=docker --add-port=<the port>/tcp --permanent
💡 默认状况下,CentOS 会应用 firewalld 防火墙来治理网络连接。每个连贯 / 接口都被调配到一个特定的区域,例如
public
、private
或docker
等。每个区域都具备一组默认的防火墙规定,用于管制该区域的网络流量。
最初,如果您应用的是阿里云,您须要登录阿里云控制台,手动在「平安组」一项开启指标端口!
5. 应用 Studio 3T 连贯数据库
Studio 3T 是一个收费的 MongoDB GUI,当您下载实现后,您能够通过如下形式拜访咱们的数据库:
点击左上角 connect
图标,点击 New Connection
按钮:
在 URI 中填写 MongoDB URI:mongodb://<username>:<password>@<IP address>:<port>/<database name>
。
至此,您实现了 MongoDB 的部署,并胜利通过 Studio 3T 进行近程连贯!
6. 总结
在本篇文章中,咱们介绍了如何应用 Docker 部署 v6 版本的 MongoDB 数据库,并应用 Studio 3T 近程连贯。目前,很多记述该内容的文章要么不残缺,要么不反对 MongoDB v6 版本,这使得部署 MongoDB v6 版本变得不那么轻松,心愿我这篇文章可能帮忙各位升高部署的难度。如果您在部署的过程中遇到困难,也欢迎您将艰难和解决方案附加到评论中,以帮忙其他人更不便的操作。
期待您关注我的公众号「前端乱步」,我会在这里定期分享有深度,体系化的科技内容。