美文网首页
docker 数据卷

docker 数据卷

作者: 金刚_30bf | 来源:发表于2018-06-26 18:27 被阅读0次

Data Volumes 数据卷: 容器内数据直接映射到本地宿主机。
Data Volume Containers 数据卷容器: 容器间共享数据卷 。

数据卷

数据卷是一个特殊的目录,它将主机目录直接映射进容器。可供一个或多个容器使用。

数据卷设计的目的就是为了 数据的持久化,它完全独立与容器的生命周期。因此,容器删除时,不会删除其挂载的数据卷,也不会存在类似的垃圾机制对容器存在的数据卷进行处理。

数据卷的特性:

  • 数据卷在容器启动时初始化,如果容器使用的镜像在挂载点包含了数据,这些数据会拷贝到新初始化的数据卷中。
  • 数据卷可以在容器之间共享和重用。
  • 可以对数据卷里的内容直接修改,修改回马上生效,无论是容器内操作还是本地操作。
  • 对数据卷的更新不会影响镜像的更新。
  • 数据卷会一直存在,即使挂载数据卷的容器已经被删除。

创建命令:

docker run -v /root/dshare:/data -it centos /bin/bash

-v : 在容器中创建一个数据卷。
/root/dshare:/data : 冒号前是宿主机目录, 后面是容器中的目录。

创建后, 无论是在宿主机还是在容器中操作数据卷中的内容,都会同时在另一面看到。

通过docker inspect 34c47c684658 命令可以查看数据卷的一些信息:

      "HostConfig": {
            "Binds": [
                "/root/dshare:/data"
            ],

...
        "Mounts": [
            {
                "Type": "bind",
                "Source": "/root/dshare",
                "Destination": "/data",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],

Docker挂载数据卷的默认权限是读写(rw),通过上面的 “RW”: true可以看到,我们也可以在创建的时候进行设置为只读,使用ro .

docker run -v /root/dshare:/data:ro -it centos /bin/bash

数据卷容器

通过挂载命名的容器来实现数据共享 。

首选创建一个容器 ,并命名 , 然后在其他容器中进行挂载 。

docker run --name votest1  -ti test_vo

docker run --name votest2 --volumes-from votest1 -it centos /bin/bash

这样在两个容器中都能看到/data1 和 /data2 , 并且对两个目录的任意修改都会被对方看到。

相关文章

网友评论

      本文标题:docker 数据卷

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