Volumes(数据卷)概述

一、说明

启动一个容器 busybox-1 。以他作为数据容器卷。

启动一个容器 busybox-2。

容器 busybox-1 将宿主机的 /mydata 挂载到了容器的 /contaion/data 中

可以理解为:容器 busybox-2 的根据容器 busybox-1 的数据卷,所有的数据卷指向一样

二、操作

step1

启动一个容器 busybox-1,指定将宿主机中的 /mydata 挂载到容器 的 /contaion/data 中

  1. #docker run -it --name busybox-1 -v /mydata:/contaion/data busybox

step2

启动另一个容器 busybox-2,将容器一busybox-1 作为数据容器卷

  1. #docker run -it --name busybox-2 --volumes-from busybox-1 busybox

step3

宿主机修改 /mydata ,增加文件 test.txt ,并忘 test.txt 中填入内容 :hello test,验证两个容器都能够看到数据变更

  • 宿主机正佳文件
  1. ZHIXING 13:37 # pwd
  2. /mydata
  3. ZHIXING 13:37 # ls
  4. ZHIXING 13:37 # touch test.txt
  5. ZHIXING 13:37 # echo "hello test" > test.txt
  • 数据容器卷 busybox-1
  1. /contaion/data # cat test.txt
  2. hello test
  • 容器二 busybox-2
  1. /contaion/data # cat test.txt
  2. hello test

step4

终止数据容器卷 容器一:busybox-1,查看引用该数据容器卷的容器二 busybox-2 中的数据卷挂载正常

  • 终止数据容器卷 busybox-1
  1. /contaion/data # exit
  • 查看容器二 busybox-2
  1. /contaion/data # cat test.txt
  2. hello test

step5

终止剩下的 busybox-2 ,不启动数据容器所在的容器,直接启动busybox-2 ,逻辑卷挂载一样存在。

结论

即使数据容器卷挂了,存在引用该数据容器卷的运行中的容器,一样会存在数据卷的挂载。

—volumn-from 命令,会把 数据容器中所有的-v 指令读取到 新启动的容器中。即使重启,逻辑卷挂载一样存在。