为什么要用数据卷
docker数据卷主要用来解决数据持久化问题
docker分层文件系统 性能差 生命周期与容器相同
docker数据卷 mount到主机中,绕开分层文件系统 和主机磁盘性能相同,容器删除后依然保留
仅限本地磁盘,不能随容器迁移
docker提供了两种卷:
bind mount
docker managed volume
bind mount 是将主机上的目录或文件mount到容器里。 使用直观高效,易于理解。 使用 -v 选项指定路径,格式 <host path>:<container path>
实验:本次实验需开通两台虚拟机server1和server2 先清除网络环境
数据卷是把宿主机的目录或文件系统直接mount到容器内,这样在容器内/data1写数据( 创建一个file1文件)就是在宿主机/data1下创建的file1文件
bind mount 默认权限是读写rw,可以在挂载时指定只读ro。 -v选项指定的路径,如果不存在,挂载时会自动创建。
docker managed volume
bind mount必须指定host文件系统路径,限制了移植性。
docker managed volume 不需要指定mount源,docker自动为容器创建数据卷目录。
默认创建的数据卷目录都在 /var/lib/docker/volumes 中。
图中的卷为上个实验仓库的卷 需清理实验环境 避免影响此次实验
docker inspect demo
如果挂载时指向容器内已有的目录,原有数据会被复制到volume中
bind mount方式