当前位置: 首页 > 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 admin

db.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 pymongo

myclient = 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

相关文章:

  • Aigtek前置微小信号放大器在传感器检测中的应用有哪些
  • STM32—触摸键
  • @ 代码随想录算法训练营第4周(C语言)|Day22(二叉树)
  • 【MySQL】表的操作
  • React18源码: reconcliler启动过程
  • ✅鉴权—cookie、session、token、jwt、单点登录
  • C语言读取用户输入的常用函数
  • django学习网址
  • 【了解机器学习的定义与发展历程】
  • nifi连接Sql server数据库报错TLS问题
  • Redis cluster集群搭建
  • K8S常用kubectl命令汇总(持续更新中)
  • 每日五道java面试题之spring篇(二)
  • sonar-java 手写一个规则-单元测试分析
  • PyPDF2:项目实战源码分享(PDF裁剪)
  • vue 子组件获取父组件
  • LeetCode9 回文数
  • 2024.2.23
  • 【深度学习笔记】深度学习训练技巧
  • Linux-基础知识(黑马学习笔记)
  • 促进产销对接,安徽六安特色产品将来沪推介
  • 北上广深还是小城之春?“五一”想好去哪玩了吗
  • 美媒:受关税政策影响,美国电商平台近千种商品平均涨价29%
  • 我的科学观|张峥:AI快速迭代,我们更需学会如何与科技共处
  • 五一假期“热潮”来袭,计划南下的小伙伴注意了
  • 一周观展|五一假期将到,特展大展陆续开幕