七、Docker学习之Docker存储卷

概述

  Docker镜像由多个只读层叠加而成,启动容器时,Docker会加载只读镜像层并在镜像栈顶部添加一个读写层。
  如果运行中的容器修改了现有的一个已经存在的文件,那该文件将会从读写层下面的只读层复制到读写层,该文件的只读版本仍然存在,只是已经被读写层中该文件的副本隐藏,此即“写时复制(COW)”机制。
  关闭并重启容器,其数据不受影响;但删除Docker容器,其更改将会全部丢失。

  卷:是容器上的一个或多个目录,此类目录可与宿主机的目录绑定关联。

Docker卷

  Docker有两种类型的卷,每种类型都在容器中存在一个挂载点,但其在宿主机上的位置有所不同。

  • Bind mount volume 绑定挂载卷:用户指定在宿主机和docker容器内的目录绑定
      docker run --name b2 -it --rm -v /var/lib/docker/volumes/b2:/data busybox #docker绑定挂载卷,如果要挂载多个卷,则写多个-v 宿主机目录:docker容器目录
    在这里插入图片描述
      docker inspect -f {{.Mounts}} b2 #查看指定信息,外面一层大括号是为格式,里面大括号表示一个json
    在这里插入图片描述

  • Docker-managed volume docker管理卷:docker自动管理与宿主机目录的绑定,不管在容器内目录还是宿主机目录新建文件,双方都共享。
      docker run -it -name b2 -v /data busybox #将容器内/data目录挂载在宿主机
    在这里插入图片描述
      docker inspect b2 #查看docker容器信息
    在这里插入图片描述

  • 共享卷:复制容器的卷设置
    先开启一个容器,并指定绑定卷
    docker run --name b2 -it -v /var/lib/docker/volumes/b2:/data busybox
    ​ 再开启第二个容器,复制b2的卷设置
    docker run --name b1 -it --volumes-from b2 busybox #--volumes-from 后面直接跟容器名
    形成宿主机与容器b1、b2之间的卷目录内容互通
    当一个容器添加多个卷时, -v 写多个

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值