Docker安装mongoDB并进行远程访问

一、下载mongo官方镜像

先查看一下mongo官方镜像的说明,看有需要注意的地方没有。

没有找到需要特别注意的地方,只需配置用户名和密码两个环境变量即可。

然后直接下载MongoDB镜像即可。

二、配置mongo镜像的启动参数

设置端口号,容器和宿主机都设置成27017。

设置环境变量,使用官方说明的两个变量,分别是用户名和密码:MONGO_INITDB_ROOT_USERNAME、MONGO_INITDB_ROOT_PASSWORD。

三、路由器设置mongo的端口转发到外网

名称 协议 外部端口 内部IP地址 内部端口
6383 TCP 6383 192.168.31.19 27017

名称可以随便填,协议选择TCP,外部端口是外网访问的端口,内部IP地址是群晖的本地IP,内部端口是容器暴露给宿主机的端口号,如果把外部端口设置成27017网络会不通,所以我们设置成了6383端口,一般大的端口可能会有各种网络的问题,还是建议使用小一些的端口,懒得折腾了,就先用这个端口,6383端口是没有任何问题的。

四、使用Robo-3t进行连接验证

至于Robo-3t怎么安装,大家就去mongo官网下载吧,超级简单,这里就忽略了,直接拿来使用。

 

 

注:如果无法运行日志提示:WARNING: MongoDB 5.0+ requires a CPU with AVX support……

安装时遇到的错误记录
错误 1:MongoDB 5.0+ requires a CPU with AVX support

问题:mongo 镜像如果不指定版本,会自动下载 latest 版本(5.0+)会出现上面的报错,且容器一直是 restarting 的状态。

解决:理论安装上 5.0 以下的版本都可以,我这里使用 4.4.4 版本安装成功。

错误 2:Error [ValidationError]: user validation failed: username: Path `username` is required.


yapi-compose.yml 文件内,账号必须为邮箱格式,我刚开始图方便设置账号为 admin,一直无法登录,查看日志后发现用户名写入 db 失败,由于没有指定 emailAddress,默认使用用户名代替,报校验失败的错误。

如果成功的话,构建后,日志内会出现如下提示:初始化管理员账号成功,账号名:"admin@easou.cn",密码:"admin"

错误 3:

$ mv mongodb-compose.yml docker-compose.yml
$ docker-compose -d up
$ mv docker-compose.yml mongodb-compose.yml

$ mv yapi-compose.yml docker-compose.yml
$ docker-compose -d up
$ mv docker-compose.yml yapi-compose.yml
WARNING: Found orphan containers (name1, name2) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up.

注意:刚开始我使用这种方式构建,报错后网上搜索了下,通过 -p 指定项目名称的方式解决。

后来查文档,发现 -p 通过环境变量来指定也行,理论上将 COMPOSE_PROJECT_NAME=xx 放在 conpose 文件内,应该也可以,由于服务已经部署成功,没有再测试,参数我补充在上面的 compose 文件中了,已注释。
————————————————
版权声明:本文为CSDN博主「abee-tester」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lan_yangbi/article/details/119938252

发表回复