数据卷
- 1. Docker数据卷管理
-
- 1.1 bind mount
- 1.2 docker managed volume
- 1.3 bind mount与docker managed volume对比
- 1.4 分享镜像的方法
1. Docker数据卷管理
- 为什么要用数据卷docker分层文件系统性能差生命周期与容器相同docker数据卷mount到主机中,绕开分层文件系统和主机磁盘性能相同,容器删除后依然保留仅限本地磁盘,不能随容器迁移
- docker提供了两种卷:bind mountdocker managed volume
1.1 bind mount
- 是将主机上的目录或文件mount到容器里。使用直观高效,易于理解。使用 -v 选项指定路径,格式 <host path>:<container path>- bind mount 默认权限是读写rw,可以在挂载时指定只读ro。-v选项指定的路径,如果不存在,挂载时会自动创建。
[root@server2 ~]# docker run -it --rm -v /data1:/data1 -v /data2:/data2:ro -v /etc/yum.repos.d/rhel7.6.repo:/mnt/rhel7.6.repo:ro busybox##测试语句
1.2 docker managed volume
- bind mount必须指定host文件系统路径,限制了移植性。docker managed volume 不需要指定mount源,docker自动为容器创建数据卷目录。默认创建的数据卷目录都在 /var/lib/docker/volumes 中。如果挂载时指向容器内已有的目录,原有数据会被复制到volume中。- -v 后面的,前面是宿主机上的指定的卷名,后面的是容器的目录
- -v 主机路径:容器路径
1.3 bind mount与docker managed volume对比
相同点:两者都是 host 文件系统中的某个路径。
不同点:
1.4 分享镜像的方法
[root@server1 ~]# docker save webserver:v4 -o webserver.tar
[root@server1 ~]# ll webserver.tar
-rw------- 1 root root 33485824 Jan 27 15:28 webserver.tar
[root@server1 ~]# scp webserver.tar server2: