卷就是文件或者目录的形式存在于一个或者多个容器中,它由docker挂载到容器。卷的设计目的在于数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷。它的方便性在于可以直接将docker容器内的数据保存进宿主机的磁盘中。
命令是:
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录 镜像名
特点:
- 数据卷可在容器之间共享或重用数据
- 卷中的更改可以直接实时生效
- 数据卷中的更改不会包含在镜像的更新中
- 数据卷的生命周期可以一直持续到没有容器使用它为止
接下来给大家一个案例:
我们先启动数据卷容器:
docker run -it --name myub --privileged=true -v /tmp/mytest/Data/:/tmp/myDockerData ubuntu /bin/bash
检查数据卷是否挂在成功:
docker inspect <容器ID>
查看source和Destination两行的目录是否是我们一开始运行容器所指定的目录就可以检查是否挂载成功。
扩展:
读写映射我们也可以指定:
docker run -it --privileged=true -v 宿主机目录:容器目录:rw 镜像名
命令中rw就是read+write的缩写,一般默认都是读写权限。如果只想有读取权限可以写ro,也就是read only。此时容器内就只可以读取不可以写入。但是此时若宿主机更改文件,容器也可以读取到。
数据卷的继承:
命令:
docker run -it --privileged=true --volumes-from <容器名(父类)> --name <容器名(子类)> 镜像名