当前位置: 首页 > news >正文

docker创建mongodb数据库容器

介绍

本文将通过docker创建一个mongodb数据库容器

1. 拉取mongo镜像
docker pull mongo:3.6

3.6版本是一个稳定的版本,可以选择安装此版本。

2. 创建并启动主数据库
  1. 容器数据卷配置
/docker/mongodb/master/data        # 数据库数据目录(宿主机)
/docker/mongodb/master/dump     # 备份数据目录(宿主机)
  1. 创建并运行容器
docker run --name mongodb-master -d -p 27017:27017 -v /docker/mongodb/master/data:/data/db -v /docker/mongodb/master/dump:/var/dump -d mongo:3.6 --auth

–auth 表示开启授权访问。默认不开启,即不需要用户名密码就可以连接数据库,这样会有安全风险,切记要开启。
开启授权访问之后,需数据库创建用户和密码。

  1. 进入容器,并连接容器
docker exec -it <container_id>  /bin/bash
mongo   # 此时不需要用户名

在这里插入图片描述
4. 创建用户

use admindb.createUser({user:"root",pwd:"123456",roles:[{role:'root',db:'admin'}]
})

在这里插入图片描述

  1. 退出并连接该数据库,需输入密码
mongo 127.0.0.1/admin -u root -p

在这里插入图片描述

  1. 连接mongodb的url
未开启授权验证时
mongodb://127.0.0.1:27017开启授权验证时
mongodb://user:passwd@127.0.0.1:27017/dbname
  1. 使用pymongo进行测试
 import pymongomyclient = pymongo.MongoClient("mongodb://root:123456@localhost:27017/")
#新建数据库
mydb = myclient["runoobdbs"]
dblist = myclient.list_database_names()     #list_database_names()获取数据库名
print(dblist)
if "runoobdbs" in dblist:print("数据库已存在!")#创建集合
mycol = mydb["sites"]
collist = mydb.list_collection_names()    #获取集合名
if "sites" in collist:   # 判断 sites 集合是否存在print("集合已存在!")#插入文档
mydict = {"name": "RUNOOB", "alexa": "10000", "url": "https://www.runoob.com"}
x = mycol.insert_one(mydict)
print(x)
dblist = myclient.list_database_names()     #list_database_names()获取数据库名
print(dblist)

参考链接:https://blog.csdn.net/weixin_34100227/article/details/88731125
https://www.jb51.net/python/285339367.htm

http://www.lryc.cn/news/307090.html

相关文章:

  • Python并发编程:多线程-线程理论
  • 自定义Chrome的浏览器开发者工具DevTools界面的字体和样式
  • 人事|人事管理系统|基于Springboot的人事管理系统设计与实现(源码+数据库+文档)
  • React18源码: Fiber树中的优先级与帧栈模型
  • Hive 最全面试题及答案(基础篇)
  • 【力扣】整数反转,判断是否溢出的数学解法
  • Jmeter之内置函数__property和__P的区别
  • GPT润色指令
  • Ubuntu中matplotlib显示中文的方法
  • String类-equals和==的区别-遍历-SubString()-StringBuilder-StringJoiner-打乱字符串
  • IDEA的LeetCode插件的设置
  • 2024.2.29 模拟实现 RabbitMQ —— 项目展示
  • React htmlfor
  • 现代化数据架构升级:毫末智行自动驾驶如何应对年增20PB的数据规模挑战?
  • 理解Stable Diffusion、LoRA、Dreambooth、Hypernetworks、Textual Inversion、Checkpoint
  • spring boot3登录开发-2(1图形验证码接口实现)
  • 网络编程中的问题总结
  • 数据结构-关键路径
  • 进程间通信学习笔记(共享内存)
  • ChatGPT学习第三周
  • R语言混合效应(多水平/层次/嵌套)模型及贝叶斯实现技术应用
  • [C++]使用C++部署yolov9的tensorrt模型进行目标检测
  • eureka注册中心做了哪些事情/原理?
  • c语言经典测试题4
  • 设计模式(五)-观察者模式
  • MySQL-七种SQL优化
  • 针对Umi、React中遇到的 “xxxx”不能用作 JSX 组件 问题解决方案
  • 蓝桥杯备战刷题one(自用)
  • 设计模式(十) - 工厂方式模式
  • http协议基础与Apache的简单介绍