• 040、Docker managed volume(2019-03-01 周五)


     
    docker managed volume 与bind mount 在使用上最大的区别是不需要指定mount 源,指明mount point就可以了
     
    [root@5bvkl harbor]# docker run --name web01 -d -v /usr/local/apache2/htdocs httpd
    6651fcb21173bbcb57c248d513adb6bbd7813b89c74e1dc1ff52f7373340e13b
    [root@5bvkl harbor]# docker inspect web01
    ......
            "Mounts": [
                {
                    "Type": "volume",
                    "Name": "209e95239ee86ead11a89a6b0b685cf4dbc05cfb746726f8707a69fc8fe19fd3",
                    "Source": "/var/lib/docker/volumes/209e95239ee86ead11a89a6b0b685cf4dbc05cfb746726f8707a69fc8fe19fd3/_data",
                    "Destination": "/usr/local/apache2/htdocs",
                    "Driver": "local",
                    "Mode": "",
                    "RW": true,
                    "Propagation": ""
                }
            ],
    ......
    [root@5bvkl harbor]# ll /var/lib/docker/volumes/209e95239ee86ead11a89a6b0b685cf4dbc05cfb746726f8707a69fc8fe19fd3/_data
    total 4
    -rw-r--r-- 1 root 40 45 Jun 12  2007 index.html
    [root@5bvkl harbor]# cat /var/lib/docker/volumes/209e95239ee86ead11a89a6b0b685cf4dbc05cfb746726f8707a69fc8fe19fd3/_data/index.html
    <html><body><h1>It works!</h1></body></html>
     
    [root@5bvkl harbor]# docker volume inspect 209e95239ee86ead11a89a6b0b685cf4dbc05cfb746726f8707a69fc8fe19fd3
    [
        {
            "CreatedAt": "2019-03-01T09:07:03+08:00",
            "Driver": "local",
            "Labels": null,
            "Mountpoint": "/var/lib/docker/volumes/209e95239ee86ead11a89a6b0b685cf4dbc05cfb746726f8707a69fc8fe19fd3/_data",
            "Name": "209e95239ee86ead11a89a6b0b685cf4dbc05cfb746726f8707a69fc8fe19fd3",
            "Options": null,
            "Scope": "local"
        }
    ]
     
    每当容器申请mount dockermanaged volume时,docker都会在/var/lib/docker/volume下生成一个目录,该目录中的内容和容器中mount point目录中的内容完全一致。
     
    因为当mount point是已经存在的目录,那么mount point目录中的内容会被复制到dockerhost上,此时mount point已经不再是storage driver管理的层数据了,他已经是一个data volume,我们可以像bind mount一样对数据进行操作
     
    docker volume 也可以查看mount信息,但是只能看到docker managed volume 的信息,bind mount的信息看不到
     
    对比bind mount 和 docker managed volume
     
    相同点:两者都是host文件系统中的某个路径
     
    不同点:
        1、volume位置docker manged volume不能指定
        2、对已经mount point 影响不同,前者用host上的文件或者目录进行覆盖,后者将容器中的目录复制到host上
        3、前者支持单个文件,后者只支持目录
        4、前者可以设置只读,后者不支持
        5、移植性:前者移植性弱,与host path绑定,后者移植性强无需指定host目录
     
  • 相关阅读:
    软件质量保证体系是什么&#160;国家标准中与质量保证管理相关的几个标准是什么?他们的编号和全称是什么?
    软件测试分为几个阶段&#160;各阶段的测试策略和要求是什么?
    BUG管理工具的跟踪过程(用BugZilla为例子)
    多线程
    设计模式
    一个简单的layui登陆界面
    反射技术
    Win10繁体——简体
    Vue学习—组件的学习
    IDEA 相关问题
  • 原文地址:https://www.cnblogs.com/www1707/p/10454903.html
Copyright © 2020-2023  润新知