目录
docker pull mongo

注:这里显示启动无异常。但其实并未成功,无法通过 docker exec 进入容器。docker run -it --name mongo -p 27017:27017 -d mongo

注:查看日志发现安装的mongo版本过高 命令: docker logs mongodocker logs mongo

注:尝试安装低版本的mongo进行启动。使用mongo:4
注:启动成功。docker run -it --name mongo4 -p 27017:27017 -d mongo:4

创建并维护数据注:测试创建库、用户、文档内容,并进行增删改查操作
docker exec -it mongo4 bash

> mongo

> db.getName()

可查看当前有哪些库可以用。命令:show dbs;use admin;

> use tonight;
> db.createUser({user:"admin",pwd:"admin",roles:[{role:"readWrite",db:"tonight"}]});

> db.auth({user:"admin",pwd:"admin"})

> db.stars.insert([{name:"moon",direct:"up"},{name:"cloud",direct:"down"}])
> db.stars.remove({_id:new ObjectId("65d4af1823fc7b96f27d1749")})
> db.stars.update({_id:new ObjectId("65d4aeb323fc7b96f27d1747")},{$set:{time:"2024-02-20 22:01:00"}})
> db.stars.find()



注意:使用此方式登录用户时需要先use admin后进行登录才能操作其他数据库。如下
> use admin
> db.auth("账号","密码")
> use <你创建的库>
> db.collection.find()
> ....
docker run -itd --name mongo4x2 --restart=on-failure:10 -p 27018:27017 -v /data/db:/data/db -v /var/log:/var/log mongo:4 --auth
注:进入docker容器> mongo> use admin
创建用户 这里创建用户使用的角色要使用 root 以便进入其他库创建用户选择角色使用test> use admin
switched to db admin
admin> db.createUser({user:"li",pwd:"li",roles:["root"]})
{ ok: 1 }
切换库,创建用户(库名字 to, 创建用户li2)
admin> use to
to> db.createUser({user:"li2",pwd:"li2",roles:["dbOwner"]})
{ ok: 1 }
to> db.auth("li2","li2")
{ ok: 1 }
to> db.momo.insertOne({name:"-"})
{
acknowledged: true,
insertedId: ObjectId("65dfd2df0def8e93d53b04db")
}
to> db.momo.find()
[ { _id: ObjectId("65dfd2df0def8e93d53b04db"), name: '-' } ]