目录
4.3、在宿主机/tmp/mydocker/下创建a.txt
一、什么是容器卷
卷就是目录或文件,存在与一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过“联合文件系统”提供一些用于持续存储或共享数据的特性;卷的设计目的就是数据的持久化,完全独立于容器的生命周期,因此docker不会再容器删除时删除其挂载的数据卷。
二、卷的特点
(1)数据卷可在容器时间共享或重用数据;
(2)卷中的更改可以直接实时生效;
(3)数据卷中的更改不会包含再镜像的更新中;
(4)数据卷的生命周期一直持续到没有容器使用为止。
三、容器卷与主机互联互通案例
3.1、宿主机与容器映射添加容器卷
实现双方资源信息互通!
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录 镜像名
docker run -it --privileged=true -v /tmp/host_data:/tmp/docker_data --name=u1 ubuntu
在容器内创建dockerin.txt,在宿主机目录查看
在宿主机创建hostin.txt,在容器内目录查看
3.2、查看容器卷是否挂载成功
docker inspect 容器id
3.3、验证容器卷数据同步
(1)先停止容器运行
(2)再宿主机创建文件c.txt
(3)启动容器查看数据是否同步
四、容器卷只读案例
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录:rw 镜像名(默认是rw)
4.1、创建只读容器卷
需求:容器实例内部被限制,智能读取不能写。
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录:ro 镜像名
docker run -it --privileged=true -v /tmp/mydocker:/tmp/u2:ro --name=u2 ubuntu
4.2、在容器/tmp/u2/下创建a.txt文件
4.3、在宿主机/tmp/mydocker/下创建a.txt
总结: 宿主机写入内容,可以同步给容器内,容器可读取到。容器只能读。
五、容器卷的继承与共享
5.1、容器u3完成和宿主机的映射
5.2、容器u4继承容器u3的卷规则
docker run -it --privileged=true --volumes-from 父类 --name u4 ubuntu
用u4在/tmp/u3下创建u4data.txt文件
在宿主机上查看是否有u4data.txt文件
停止u3容器,在宿主机上创建aaa.txt文件
在u4容器上查看
启动u3查看
总结:容器卷的继承,继承了父类的映射路径和同步功能。