Docker上安装mongodb

查看下载镜像

1
2
3
4
5
# 查看镜像
docker search mongo
# 拉取镜像
docker pull mongo
# 如果要拉取指定版本,可在docker hub上查看具体所有的mongo版本,然后使用 mongo:x.x 拉取指定版本。

运行启动容器

1
2
3
4
5
6
7
docker run --name mongodb -p 27072:27017 -v /data/mongodb/db:/data/db -v /data/mongodb/configdb:/data/configdb -d mongo --auth
# --name :指定容器名
# -p :指定容器暴露端口,宿主机端口:容器内端口
# -v :指定容器存储卷,宿主机目录:容器内目录
# -d :设置容器为后台运行,后面的mongo为镜像名
# --auth :开启密码授权访问
docker ps # 查看刚创建的容器

创建管用户

  • 以admin用户身份进入mongo,创建管理员用户
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
docker exec -it mongodb bash
# -it : 已交互式的方式
# 使用mongo命令,进入mongo
use admin;
db.createUser({
user: 'root',
pwd: 'mongo',
roles: [ { role: "root", db: "admin"}]});
db.auth('root','mongo') # 返回1成功

# 退出,再进入
docker exec -it mongodb mongo admin
db.auth('root','mongo')
# 创建普通用户
db.createUser({
user: 'root',
pwd: 'mongo',
roles: [ { role: "readWriteAnyDatabase", db: "admin"}]});
#
# role后面的参数参考,可根据时间情况选择:
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限
# 验证
db.auth('root','mongo')

客户端管理工具

1
2
# 下载Robo 3T
https://robomongo.org/download

mark

创建用户

mark

python调用mongo存储数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 先安装pymongo包
import pymongo

# 建立连接
client = pymongo.MongoClient('mongodb://liyk:***@43.x.x.x:27072/')
# 没密码认证可如下连接
# client = pymongo.MongoClient('43.x.x.x',27072)

# 新建名为weather的数据库
book_weather = client['weather']
# 在weather库中新建名为sheet_weather_1的表
sheet_weather = book_weather['sheet_weather_1']
dict_data = strhtml2.json()
# 向数据库表中插入数据
sheet_weather.insert_one(dict_data)
-------------本文结束感谢您的阅读-------------
原创技术分享,感谢您的支持。