使用Docker可以通过简单的拉取镜像、生成容器、端口映射来简化开发环境的配置过程。
以MongoDB为例,首先从Docker Hub搜索需要的镜像,然后docker pull命令拉一下这个镜像,下面是详细的操作过程。
Docker配置命令
docker images // 查看当前已有镜像
docker pull mongo:latest // 拉取最新版的mongo镜像
docker run -itd --name mongo -p 27017:27017 mongo --auth // 生成容器,命名为mongo,端口映射到主机27017(第一个端口)
docker ps -a // 查看所有容器的运行情况,不加-a只能看正在运行的
docker exec -it mongo bash // 进入容器内部的bash,下面是mongo的命令
mongo // 下次登陆使用用户名和密码 mongo -u "" -p ""
use admin
switched to db admin
db.createUser({user:"admin",pwd:"admin123",roles:[{role:"root",db:"admin"}]})
docker start b750b5255853 // 开启容器‘b75...’,可以跟容器ID或者容器name
docker stop b75078822227 // 关闭
docker restart b750bbbcfd88 // 重启
docker rm -f 1e560fca3906 //删除容器
docker rmi hello-world //删除镜像
Mongo添加管理员
创建第一个用户,该用户需要有用户管理权限
这里设置其角色为root
use admin
db.createUser({user:"admin",pwd:"password",roles:["root"]})
新增的用户在system.users中
> db.getCollectionNames()
[ "system.indexes", "system.users", "system.version" ]
为其他库添加用户
db.createUser({user:"admin",pwd:"admin123",roles:[{role:"root",db:"xxxdb"}]})
查询所有数据库 | show dbs; |
切换数据库 | use test |
创建数据库 | use smile |
查看smile数据库当前状态 | db.stats() |
删除数据库 | db.dropDatabase() |
查看当前数据库的连接机器地址 | db.getMongo() |
创建集合 | db.createCollection('a') |
插入数据 | db.c.insert({name:'smile'}); WriteResult({ "nInserted" : 1 }) |
插入1w行数据
| for(i=0;i<10000;i++){ db.log.insert({"uid":i,"name":"mongodb","age":6,"date":new Date()}); } |
查看当前数据下的所有集合 | show collections; db.getCollectionNames(); |
查看合集里的内容 | db.c.find() |
查询集合中的查询所有记录 | db.log.find()查找所有的, findOne()返回第一个符合的,findById()根据_Id查找 |
删除合集 | db.a.drop() |