乐趣区

关于docker:系统学习DockerDocker容器数据卷

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

查看 容器二的挂载状况,发现也挂载了这个文件。

退出移动版