H__D  

  本例介绍Docker 容器数据卷

容器数据卷概念

  卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会用于容器删除时删除其挂载的数据卷

   特点:

    1、数据卷可在容器之间共享或重用数据

    2、卷中的更改可以直接生效

    3、数据卷中的更改不会包含在镜像的更新中

    4、数据卷的生命周期一直持续到没有容器使用它为止

  作用:

    1、容器的持久化

    2、容器间继承 + 共享数据

添加容器数据卷

 1)直接命令添加

  1、使用run命令创建一个新的容器,并在命令中加入 -v 参数

    格式:docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名

    或者只读格式:docker run -it -v /宿主机绝对路径目录:/容器内目录:ro 镜像名

    例如:docker run -it -v /myDataVolume:/dataVolumeContainer centos

  2、查看数据卷是否挂载成功

    使用命令:docker inspect 容器ID

      

  3、测试容器和宿主机之间数据共享

    a、在宿主机/myDataVolume目录下新建文件,看容器中/dataVolumeContainer目录下是否存在同样的文件

      答案:存在同样文件 

    b、在容器中/dataVolumeContainer目录下新建文件,看宿主机/myDataVolume目录下是否存在同样的文件

      答案:存在同样文件

    c、关闭容器,在宿主机/myDataVolume目录下新建或删除文件,然后启动容器,看容器中/dataVolumeContainer目录下是否同样新建或删除文件

      答案:是的

 2)DockerFile添加

  1、编写一个Dockerfile文件,使用VOLUME质量来给镜像添加一个或多个数据卷,内容如下:

1 # volume test
2 FROM centos
3 VOLUME ["/dataVolumeContainer01", "/dataVolumeContainer02"]
4 CMD echo "finished, ......... SUCCESS1"
5 CMD /bin/bash

  2、Dockerfile 构建,build后生成镜像

    命令:docker build -f dockerfile -t test/mycentos .

  3、运行新镜像,生成容器

    命令:docker run -itd  test/mycentos

  4、查看容器,并用docker inspect 命令查看新容器信息

    命令:docker inspect 容器ID

数据卷容器

   命名的容器挂载数据卷,其他容器通过挂载这个(父容器)实现数据共享,挂载数据卷的容器,称之为数据卷容器

  容器间传递共享(--volumes-from)

  1、先启动一个父容器dc01

  2、启动一个dc02继承dc01,启动一个dc03继承dc02

  3、在dc01、dc02、dc03中任何挂载盘目录建文件,其他容器中都有个

  4、使用docker inspect命令查看各容器信息,发现数据卷对应的主机目录相同

  这也就实现了-其他容器通过挂载这个(父容器)实现数据共享

posted on 2020-03-25 01:01  H__D  阅读(190)  评论(0编辑  收藏  举报