docker安装MongoDB
1.拉取镜像
docker pull mongo
2.创建文件夹
mkdir -p /usr/local/mongodb/datadb
chmod 777 /usr/local/mongodb/datadb
3.放行端口
firewall-cmd --zone=public --add-port=27017/tcp --permanent
firewall-cmd --reload
4.创建并启动容器
4.1不指定用户名和密码
docker run -d --name mongo -v /usr/local/mongodb/datadb:/data/db -p 27017:27017 --privileged=true mongo
-v /usr/local/mongodb/datadb:/data/db 挂载目录
-d 后台运行容器
-p 映射端口
连接
- 使用命令行
docker exec -it mongo bash
mongo admin
- 创建root账户
use admin
db.createUser(
{
user: "root",
pwd: "root",
roles: [ { role: "root", db: "admin" } ]
}
);
- 退出重新连接
exit
docker exec -it mongo bash
mongo -u root -p root admin
- 如果要为某个数据库创建普通用户
use test
db.createUser(
{
user: "testuser",
pwd: "password",
roles: [
{ role: "readWrite", db: "test" }
]
}
);
exit
mongo -u testuser -p password --authenticationDatabase test
4.2指定用户名和密码
docker run -d --name mongo -v /usr/local/mongodb/datadb:/data/db -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=root -e MONGO_INITDB_ROOT_PASSWORD=root --privileged=true mongo
连接
- 使用命令行
docker exec -it mongo bash
mongo -u root -p root admin
- 如果要为某个数据库创建普通用户
use test
db.createUser(
{
user: "testuser",
pwd: "password",
roles: [
{ role: "readWrite", db: "test" }
]
}
);
exit
mongo -u testuser -p password --authenticationDatabase test (以刚创建的test用户登录)
5.常见命令
- 显示数据库
show dbs
- 选择和创建数据库(如果数据不存在则自动创建)
use 数据库名称
- 显示集合(表)
show collections
- 插入文档
db.集合名称.insert(数据)
- 查看集合(表)下的文档数据
db.集合名称.find()
- 按条件查询(参数为json)
db.集合名称.find(参数)
- 返回符合条件的第一条数据(参数为json)
db.集合名称.findOne(参数)
- 返回指定条数的记录
db.集合名称.find().limit(条数)
- 修改文档(条件和修改后的数据为json)
db.集合名称.update(条件,{$set:修改后的数据})
- 删除文档(条件为json)
db.集合名称.remove(条件)
- 删除全部文档,请慎用
db.集合名称.remove({})
- 统计条数
db.集合名称.count()
- 按条件统计条数(条件为json)
db.集合名称.count(条件)