美文网首页Docker的那些事儿
Docker的那些事儿—Docker数据卷(一)(29)

Docker的那些事儿—Docker数据卷(一)(29)

作者: sjyu_eadd | 来源:发表于2018-03-20 00:04 被阅读13次

    上一篇:Docker的那些事儿—Docker数据管理(28)


    数据卷是一个或多个容器专门指定绕过Union File System,为持续性或共享数据提供一些有用的功能:

    (1)数据卷可以在容器间共享和重用。

    (2)数据卷数据的改变是直接修改的。

    (3)数据卷数据的改变不会被包括在容器中。

    (4)数据卷是持续性的,直到没有容器使用它们。

    数据卷操作

    Docker启动的时候可以通过-v选项添加数据卷,实现将主机上的目录或者文件挂载到容器中。完整的参数为:

    -v host-dir:container-dir:[rw|wo]

    -v container-dir:[rw|wo]

    -v volume-name:container-dir:[rw|wo]

    其中,

    host-dir:表示主机上的目录,如果不存在,Docker 会自动在主机上创建该目录。必须是绝对路径

    container-dir:表示容器内部对应的目录,如果该目录不存在,Docker 也会在容器内部创建该目录。

    volume-name:表示卷名,如果该卷不存在,docker将自动创建。

    rw|ro:用于控制volume的读写权限。

    (1)docker run -itd -P -v /test:/data --name myhttp httpd

    在宿主机/test目录下创建test.txt文件,观察容器内/data目录下内容变化

    docker container inspect myhttp查询Mounts参数如下:

    删除容器,宿主机上/test目录及内容未发生任何变化。

    (2)docker run -itd -P -v /data --name myhttp httpd

    我们看到容器内出现了/data目录。那这一次又是宿主机上哪个目录挂载到/data下的呢?

    我们使用docker volume ls查询,发现多了一个本地卷:f343bc68303155c111bea58a907131d9fe1751bc8ef6528cc53d5b7dce292dee

    使用docker volume inspect查询到如下的挂下点目录:

    /var/lib/docker/volumes/f343bc68303155c111bea58a907131d9fe1751bc8ef6528cc53d5b7dce292dee/_data

    当在上述目录下创建test.txt文件后,容器内也查询到该新增文件。

    删除容器后,宿主机上的目录及内容也未发生任何变化。

    (3)docker run -itd -P -v my_volume:/data --name myhttp httpd

    docker自动创建了卷:my_volume,并且这个卷对应的宿主机的挂载点是:

    /var/lib/docker/volumes/my_volume/_data。这和第二种方式几乎一样,不同点在于未指定volume名是docker会在/var/lib/docker/volumes随机创建一个目录。

    docker container inspect myhttp查询Mounts参数如下:

    对于docker数据卷的总结:

    (1) 三种方式都可以将宿主机目录或者文件挂载到容器。

    (2) Docker提供了docker volume命令专门对volume进行管理。对于第一种方式Type为bind,是无法使用docker volume进行管理的。我们也可以使用docker volume create命令创建volume。

    (3) 删除容器是如果使用docker rm container将不会删除对应的Volume。如果想要删除可以使用docker rm -v container。另外也可以单独使用docker volume rm volume_name删除volume。

    (4) 对于已运行的数据卷容器,不能动态的调整其卷的挂载。Docker官方提供的方法是先删除容器,然后启动时重新挂载。


    下一篇:Docker的那些事儿—Docker数据卷(二)(30)


    相关文章

      网友评论

        本文标题:Docker的那些事儿—Docker数据卷(一)(29)

        本文链接:https://www.haomeiwen.com/subject/snwmqftx.html