Docker安装MoogoDB, 进入容器, mongo shell操作mongoDB

安装MoogoDB, 进入容器, mongo shell操作mongoDB [ 包含 Docker-Compose方式、普通方式 ]

附件:单词本

音标注释
container[kənˈteɪnə®]:[ken’ tei’ ne’ er]容器
volume[ˈvɒljuːm] :[wao’ liu’ mu]

附件:什么是 . yml 后缀文件 ?

  • **​ YML文件格式是YAML (YAML Aint Markup Language)编写的文件格式;
  • ​ YAML是一种直观的能够被电脑识别的的数据数据序列化格式,并且容易被人类阅读;
  • ​ 容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入,
  • ​ 比如: C/C++, Ruby, Python, Java, Perl, C#, PHP等。YML文件是以数据为核心的,比传统的xml方式更加简洁。
  • ​ YML文件的扩展名可以使用.yml或者.yaml**

附件 .yml书写格式

  1. 基本语法

*文件格式: .yml
使用缩进表示层级关系
缩进不允许使用tab,只允许空格
缩进空格数不重要,相同层的元素左对齐即可
注释符号:#

(1) 键值

key: value

(2)数组:按次序排列的值

Languages:
  - Ruby
  - Perl
  - Python

附件:hub.Docker mongo文档地址

hub.Docker mongo文档

1. 安装镜像:

docker pull mongo:[tag]
* 拓展:[镜像查询命令]
docker search mongo

2. 运行镜像:

[ 2.1 普通方式 | 2.2 docker compose方式; ]

2.1 shell命令行 方式

无校验AUTH 版
docker run --name mymongo --restart=always -p 27017:27017 -v ${PWD}/mongo/db:/data/db -v ${PWD}/mongo/etc:/data/etc/ -itd mongo:5.0.5

校验AUTH 版
docker run --name mymongo --restart=always -p 27017:27017 -e "MONGO_INITDB_ROOT_USERNAME=root" -e "MONGO_INITDB_ROOT_PASSWORD=123" -v ${PWD}/mongo/db:/data/db -v ${PWD}/mongo/etc:/data/etc/ -itd mongo:5.0.5

-e 环境变量写法

-e "MONGO_INITDB_ROOT_USERNAME=root" -e "MONGO_INITDB_ROOT_PASSWORD=123"
# 或者 都可以
-e MONGO_INITDB_ROOT_USERNAME="root" -e MONGO_INITDB_ROOT_PASSWORD=123
参数作用备注
–privileged拥有真正的root权限
–restart=alwaysDocker服务重启容器也启动
–name容器别名
-p主机(宿主)端口:容器端口
-v挂载 [ 主机(宿主)目录:容器目录 ]多个挂载目录, 用多个 -v
${PWD} / $PWD当前工作目录的绝对路径
-i以交互模式运行容器,通常与-t同时使用
-t为容器重新分配一个伪输入终端,通常与-i同时使用
-d后台运行容器,并返回容器ID,也即启动守护式容器

2.2 docker compose.yml 方式

无校验AUTH 版

2.2.1 编写docker-compose.yml 文件;

version: '2.12.2'  # docker compose 版本号
services:
  mongo:
    image: mongo:5.0.5
    restart: always
    container_name: mongodb505
    ports: 
     - 27017:27017
    volumes:
     - ${PWD}/data/db:/data/db

校验AUTH 版

运行时直接创建一个初始用户;

root

123

注意!![ environment:书写格式 ]

environment:写法格式

# [ 横线 + 键+ 等号 + 值 ]
 environment:
      - AUTH=yes
      - MONGO_INITDB_ROOT_USERNAME=admin
      - MONGO_INITDB_ROOT_PASSWORD=admin123
# 或者 [ 键 + 冒号 + 空格 + 值 ]
 environment:
      AUTH: yes
      MONGO_INITDB_ROOT_USERNAME: admin
      MONGO_INITDB_ROOT_PASSWORD: admin123
version: '2.12.2'
services:
  mongo:
    image: mongo
    restart: always
    container_name: mongodbMother-init-username
    environment:
     - MONGO_INITDB_ROOT_USERNAME=root
     - MONGO_INITDB_ROOT_PASSWORD=123
    ports:
     - 27017:27017
    volumes:
     - ${PWD}/mother/db:/data/db

2.2.2 启动docker compose

# docker-compose.yml 目录下执行命令:
docker compose up -d

3. 进入运行的mongo容器

docker exec -it mymongo bash
# or
docker exec -it mymongo /bin/bash

在这里插入图片描述

成功!


4. bash中进入mongo shell

版本更替, 进入shell的命令 | mongo [ 版本 < 6.0 ] =>f mongosh [ 版本 > 6.0]

the “mongo” shell has been superseded by “mongosh”,
which delivers improved usability and compatibility.The “mongo” shell has been deprecated and will be removed in
an upcoming release

# 6.0 版本之前,进入mongo shell
  mongo 
  

# 6.0 版本开始, 进入mongo shell 
	mongo [命令被遗弃]
	# 改为
	mongosh

在这里插入图片描述

成功!


5. 查看mongoDB数据库

5.1 [不含auth校验]
show dbs

在这里插入图片描述

5.2 [含auth校验]
 environment:

   - MONGO_INITDB_ROOT_USERNAME=root

   - MONGO_INITDB_ROOT_PASSWORD=123
  1. 设定的初始用户,是针对admin数据库下;

  2. admin这个数据库是系统自带的数据库,**他的用户可以访问任何其他数据库的数据**,也叫做超级管理员

  3. db.auth(arg1,arg2) :arg1,arg2两者数据类型都为string;即便MONGO_INITDB_ROOT_PASSWORD: 123 值为Number类型

use admin
db.auth('root','123')

在这里插入图片描述

成功!


6. 注意!!

volumes:
     - ${PWD}/mother/db:/data/db

如果当前容器rm后 没有删除宿主机挂载目录;

重新运行一个相同挂载路径的新容器,原有数据库admin中创建的用户root,123 还会保留auth;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值