1:mongodb-环境准备
docker 运行mongodb
拉取镜像
docker pull mongo:4.4
创建挂载数据目录
mkdir -p /opt/mongodb/data
运行容器
docker run -itd --name mongo -v /opt/mongodb/data:/data/db -p 27017:27017 mongo:4.4 --auth
1:-v: 将宿主机的/opt/mongodb/data映射到容器的/data/db目录,将数据持久化到宿主机,以防止删除容器后,容器内的数据丢失
2:–auth:需要密码才能访问容器服务
进入容器
docker 进入mongo
docker exec -it mongo bash #mongo为容器名
docker 运行mongo
docker exec -it 容器名 mongo admin # 以 admin 用户身份进入mongo
db.createUser({ user:‘suzimo’,pwd:‘123456’,roles:[ { role:‘userAdminAnyDatabase’, db: ‘admin’},“readWriteAnyDatabase”]}); # 创建用户
db.auth(‘suzimo’,‘123456’) # 用户登录
容器数据操作
从本地导入文件到mongo容器
mongodb数据文件
docker cp 宿主机文件路径 容器名:容器路径
docker cp /opt/mongodb/exportdata mongo:/
/opt/mongodb/exportdata 是我本地文件路径,导入到mongo容器的根目录下
再把文件导入数据库中
> show dbs;
admin 0.000GB
config 0.000GB
local 0.000GB
> use mydbs
switched to db mydbs
> db
mydbs
> db.createUser({ user:'test',pwd:'123456',roles:[ { role:'dbOwner', db: 'mydbs'} ]})
Successfully added user: {
"user" : "test",
"roles" : [
{
"role" : "dbOwner",
"db" : "mydbs"
}
]
}
> use mydbs
退出mongo数据库 ,进入mongo容器
docker exec -it containid bash
cd /
mongorestore -d mydbs --username test --password 123456 /dump/mock
从mongo容器导入到本地
docker cp 容器名:容器里文件路径 宿主机文件路径
docker cp mongo:/home/data/user.json /opt/mongodb/user