附件:单词本| 音标 | 注释 | |
|---|---|---|
| container | [kənˈteɪnə®]:[ken’ tei’ ne’ er] | 容器 |
| volume | [ˈvɒljuːm] :[wao’ liu’ mu] | 卷 |
附件:什么是 . yml 后缀文件 ?附件 .yml书写格式*文件格式: .yml
使用缩进表示层级关系
缩进不允许使用tab,只允许空格
缩进空格数不重要,相同层的元素左对齐即可
注释符号:#
(1) 键值
key: value
(2)数组:按次序排列的值
Languages:
- Ruby
- Perl
- Python
附件: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

成功!
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数据库show dbs

environment:
- MONGO_INITDB_ROOT_USERNAME=root
- MONGO_INITDB_ROOT_PASSWORD=123
设定的初始用户,是针对admin数据库下;
admin这个数据库是系统自带的数据库,**他的用户可以访问任何其他数据库的数据**,也叫做超级管理员
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;