什么是容器数据卷?
docker—将应用和环境打包成一个镜像!
数据?如果数据在容器在,如果我们容器删除,数据就会丢失!需求:数据持久化
需求:数据可以存储在本地或者其他地方
容器之间可以有数据共享的技术!Docker容器产生的数据,同步到本地,—卷技术!
使用数据卷
#方式一docker run -it -v 主机目录:容器目录 -p 主机端口:容器端口docker run -it -v /home/ceshi:/home -p 9091:9091
挂载信息查看
docker inspect 容器id

具名挂载 匿名挂载
# 匿名挂载-v 容器内路径docker run -d -P --name nginx02 -v /etc/nginx nginx# 查看所有的volumn的情况docker volumn ls#这里发现我们在-v只写了容器内的路径,没有写容器外的路径# 具名挂载doker run -d -p --name nginx03 -v juming-nginx:/etc/nginx nginx#通过 -v 卷名:容器内路径#查看这个卷docker volumn inspect 卷名

所有的docker容器内的卷,没有指定目录的情况下都是在/var/lib/docker/volumes/xxxx/_data
我们通过具名挂载可以方便我们找到一个卷,大多数情况在使用具名挂载
如何判断是具名挂载还是匿名挂载,还是指定路径挂载
-v 容器内路径 #匿名挂载-v 卷名:容器内路径 #具名挂载-v /宿主机路径::容器内路径 #指定路径挂载
拓展:
# 通过-v 容器内路径:ro rw 改变读写权限# ro readonly #只读# rw readwrite #可读可写#一旦设置了容器权限,容器对挂载出来的内容就有限定了docker run -d -p --name nginx03 -v juming-nginx:/etx/nginx:ro nginxdocker run -d -p --name nginx03 -v juming-nginx:/etc/nginx:rw nginx# ro 只能通过宿主机来操作 ,容器内部是不能操作的
初识dockerfile
什么是dockerfile?
Dockerfile就是用来构建docker镜像的构建文件!命令脚本 !
通过脚本可以生成镜像,镜像是一层一层的
#穿件一个dockerfile文件,迷茫自可以随机,建议用dockerfile# 生成镜像脚本 指令(大写) 参数FROM centosVOLUME ["volume01","volume02"]CMD echo "----end---"CMD /bin/bash
创建命令
docker -build -f dockerdile文件路径 -t 自己的镜像名:版本 . #(最后一个点不可省略)
启动自己的容器

挂载的数据卷目录
这个卷一定和宿主机有对应的卷

假设构建镜像时候没有挂载卷,要手动挂载卷 -v 卷名:容器内路径
数据卷容器
两个mysql同步数据
#启动三个容器#docker run -d -p --name容器名 --volumes-from 父容器 镜像名docker run -it --name qq2 --volumes-from qq1 qq/
容器数据共享命令
—volumes-from
#删除。可以删除父容器,查看其它容器共享文件是否还在
#测试 依旧可以访问
实例:多个redis mysql数据共享
总结:
容器之间配置信息的传递,数据卷容器的生命周期一直持续到没有容器使用为止
但是一旦持久化到了本地,到了这时候本地是不会被删除的;


