由于在内网,只能通过外网打包镜像然后传入内网加载启动

一、安装部署mongo docker容器

1.在外网下载镜像

docker pull mongo

2.打包镜像

docker save -o mongodb_save.tar 镜像id

3.把镜像包传入内网docker服务器,载入镜像

docker load --input mongdb_save.tar 

4.启动mongo容器

这里参考文档里的mongod -f 配置文件一直报错,遂去除

docker run -id --name=mongodb --restart always -v /data/mongodb/data:/data/db -v /data/mongodb/cluster:/data/configdb -p 27017:27017 -e LANG=C.UTF-8 -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=123456 镜像id mongod --auth

5.查看mongo镜像日志,确认启动正常

docker ps

docker logs  mongo容器id

发现报错了!

WARNING: MongoDB 5.0+ requires a CPU with AVX support

无奈只能删除镜像,重新下载mongo4.4.19版本重新安装(之前去dockerhub上确认过,5.0以下只有4.4.19最新了)

docker rm -f mongo镜像id ,再来一遍

 

 

扩展笔记:

DOCKER 离线部署打包
docker save 和 docker export 区别 :
1:docker save保存的镜像必须用docker load来导出 docker export 保存的容器 必须用 docker import导出 两者不能混用,否则容器无法正常启动
2:docker save保存的是镜像(image),docker export保存的是容器(container)
3:docker load --input 用来载入镜像包,docker import用来载入容器包,但两者都会恢复为镜像;
运行命令:
docker save -o xxx_save.tar 镜像ID -> docker load --input xxx_save.tar

docker export -o xxx_export.tar 容器ID-> docker import xxx_export.tar xxx:version

export 方式 导入的镜像运行容器失败时 需要追加容器的command
查看原有镜像启动command: docker ps -a --no-trunc
建议使用save 导出的方式 最原始的镜像 该方式不会载入原有容器 ,启动也不用追加容器的command参数

 

 

二、开始初始化mongo数据库并创建mongo账号

1.登陆mongo 容器

docker exec -it mongo容器id /bin/bash 

mongo -u admin
输入密码登陆
#查看已有的mongo数据库
show dbs
#创建mongo数据库
use tt
#创建一个表使数据库保存
db.usr.insert({'name':'tompig'});
#确认数据库是否创建成功
show dbs
#创建新建数据库的账号(由于dbOwner权限很大,此处后面的读写可以省略)
db.createUser({ user:'root',pwd:'123456',roles:[ { role:'dbOwner', db: 'tt'},'readWrite']});
#退出admin账号,用刚才创建的账号登陆验证
exit
mongo -u tt
show dbs
#验证无误,创建完成



 

mongodb用户权限补充说明:

数据库用户角色有:
read
readWrite

数据库管理员角色有:
dbAdmin
dbOwner (包含 dbAdmin,readWrite,userAdmin)
userAdmin

群集管理员角色有:
clusterAdmin (包含 clusterManager,clusterMonitor,hostManager)
clusterManager
clusterMonitor
hostManager

所有的数据库角色有:
readAnyDatabase
readWriterAnyDatabase
userAdminAnyDatabase
dbAdminAnyDatabase

超级用户角色
root(包含 readWriteAnyDatabase,dbAdminAnyDatabase,userAdminAnyDatabase,clusterAdmin)

 

参考文档:

https://blog.csdn.net/weixin_45493805/article/details/129436670

https://developer.aliyun.com/article/1144125

https://blog.csdn.net/zhaowenzhong/article/details/51898997

https://www.shuzhiduo.com/A/rV57gMeV5P/

https://blog.csdn.net/packge/article/details/126539320

 

posted on 2023-03-31 19:30  06  阅读(1032)  评论(0编辑  收藏  举报