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


文章目录

  • 安装MoogoDB, 进入容器, mongo shell操作mongoDB [ 包含 Docker-Compose方式、普通方式 ]
  • `附件:单词本`
  • `附件:什么是 . yml 后缀文件 ?`
  • `附件 .yml书写格式`
  • `基本语法`
  • `附件:hub.Docker mongo文档地址`
  • `1. 安装镜像:`
  • * 拓展:[镜像查询命令]
  • `2. 运行镜像:`
  • `2.1 shell命令行 方式`
  • `无校验AUTH 版 `
  • `校验AUTH 版 `
  • `2.2 docker compose.yml 方式`
  • ` 无校验AUTH 版`
  • `校验AUTH 版`
  • `注意!![ environment:书写格式 ] `
  • `3. 进入运行的mongo容器`
  • `4. bash中进入mongo shell `
  • `版本更替, 进入shell的命令 | mongo [ 版本 < 6.0 ] =>f mongosh [ 版本 > 6.0]`
  • `5. 查看mongoDB数据库`
  • 5.1 [不含auth校验]
  • 5.2 [含auth校验]
  • `6. 注意!!`


附件:单词本

音标

注释

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书写格式

基本语法

*文件格式: .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=always

Docker服务重启容器也启动

–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

docker 安装部署 docker安装部署国产mogdb_docker

成功!


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

docker 安装部署 docker安装部署国产mogdb_docker 安装部署_02

成功!


5. 查看mongoDB数据库

5.1 [不含auth校验]

show dbs

docker 安装部署 docker安装部署国产mogdb_容器_03

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')

docker 安装部署 docker安装部署国产mogdb_mongodb_04

成功!


6. 注意!!

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

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

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