在docker中使用MongoDB
通过Docker运行Mongo
|
|
-v/data/db:/data/db
将主机的/data/db
文件夹挂载在容器内的/data/db
在docker容器中运行MongoDB所产生的数据会保存在容器内部,容器停止后数据也将随之消失无法得到保存。所以为了将容器中的数据持久化,需要使用docker的数据卷,将主机上的文件夹映射到容器内部。这样容器运行时所产生的数据将会保存在主机的文件中。
NOTE: mac os 需要在Docker -> Preferences… -> File Sharing中添加共享的目录
-p 27017:27017
将容器内mongo的默认27017
端口映射至主机的27017
端口-d
后台运行—auth
开启Mongo的验证
进入Mongo shell
在主机上进入
|
|
设置管理员/用户
|
|
验证
通过本地mongo shell 连接远程服务器的mongoDB
|
|
问题
在阿里云上通过docker运行mongo,在本地使用mongo尝试连接,连接不上
|
|
解决
在本地连接不上远程的数据库是因为我将docker端口和服务器端口映射写反了。
出现类似的问题应该如何排查
- 检查端口号配置
- 检查账号密码设置
- 检查阿里云安全组设置
购买的云主机服务,初始的时候除了ssh外的端口,所有对外的端口都是被屏蔽的。需要去手动去阿里云的安全组中将需要用到的端口配置打开,在外网才能访问