docker 数据卷

2018-06-26  本文已影响0人  金刚_30bf

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 , 并且对两个目录的任意修改都会被对方看到。

上一篇 下一篇

猜你喜欢

热点阅读