1.Docker容器数据卷是什么
2.Docker容器数据卷的应用
1.Docker容器数据卷是什么
咱们在应用docker启动mysql的时候,mysql的数据是默认保留在docker外面的,如果不进行长久化,容器重启之后数据就会隐没,这个时候咱们就须要长久化,将docker内的数据保留进宿主机的磁盘中。
数据卷设计的目标就是数据的长久化,齐全独立于容器的生存周期,因而Docker不会在容器删除时删除其挂载的数据卷。
数据卷的特点:
1:数据卷可在容器之间共享或者重用数据。
2:数据卷中的更改能够间接实时失效。
3:数据卷中的更改不会蕴含在镜像的更新中。
4:数据卷的生命周期始终继续到没有容器应用它为止。
2.Docker容器数据卷的应用
命令:
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录 镜像名
这里加上--privileged=true的起因是:
CentOS7平安模块会比之前零碎版本要更强一点,不平安的会被禁止,所以目录挂载的状况会被默认为不平安的行为,如果咱们要开启挂载,要应用--privileged=true命令,应用该参数,container内的root领有真正的root权限,否则,container内的root只是内部的一个普通用户权限。
演示:
sudo docker run -it --privileged=true -v /usr/local/test:/usr/local/test:rw ubuntu
查看数据卷是否挂载胜利:
docker inspect 容器ID
宿主机启动,进入容器:
宿主机创立文件:
容器前后区别:
挂载的读写规定:
读写:容器对该文件可读可写
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录:rw 镜像名
只读:容器实例外部被限度,只能读取不能写
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录:ro 镜像名
数据卷的继承和共享:
命令:
docker run -it --privileged=true --volumes-from 父类容器 --name 新容器名 镜像名
演示:
先启动第一个容器:
sudo docker run -it --privileged=true -v /usr/local/test:/usr/local/test:rw --name u1 ubuntu
再启动第二个容器:
docker run -it --privileged=true --volumes-from u1 --name u2 ubuntu
查看容器二的挂载状况,发现也挂载了这个文件。