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目录
 

040、Docker managed volume(2019-03-01 周五)的更多相关文章

  1. 第 6 章 存储 - 040 - docker managed volume

    docker managed volume 与 bind mount 在最大区别是不需要指定 mount 源,指明 mount point 就行了 通过 -v 告诉 docker 需要一个 data ...

  2. docker managed volume - 每天5分钟玩转 Docker 容器技术(40)

    docker managed volume 与 bind mount 在使用上的最大区别是不需要指定 mount 源,指明 mount point 就行了.还是以 httpd 容器为例: 我们通过 - ...

  3. Cheatsheet: 2019 03.01 ~ 04.30

    Golang How To Install Go and Set Up a Local Programming Environment on macOS Build A Go API 40+ prac ...

  4. 2019.03.01 bzoj3075: [Usaco2013]Necklace(kmp+dp)

    传送门 题意简述:给出S,TS,TS,T两个字串,∣S∣≤10000,∣T∣≤1000|S|\le10000,|T|\le1000∣S∣≤10000,∣T∣≤1000,问至少从SSS中删去几个字符能够 ...

  5. 2019.03.01 bzoj2555: SubString(sam+lct)

    传送门 题意简述: 要求在线支持两个操作 (1):在当前字符串的后面插入一个字符串 (2):询问字符串s在当前字符串中出现了几次?(作为连续子串) 思路: 考虑用lctlctlct来动态维护samsa ...

  6. 38-docker managed volume

    docker managed volume 与 bind mount 在使用上的最大区别是不需要指定 mount 源,指明 mount point 就行了.还是以 httpd 容器为例: 我们通过 - ...

  7. docker挂载volume的用户权限问题,理解docker容器的uid

    docker挂载volume的用户权限问题,理解docker容器的uid 在刚开始使用docker volume挂载数据卷的时候,经常出现没有权限的问题. 这里通过遇到的问题来理解docker容器用户 ...

  8. [2019.03.25]Linux中的查找

    TMUX天下第一 全世界所有用CLI Linux的人都应该用TMUX,我爱它! ======================== 以下是正文 ======================== Linu ...

  9. 2019.03.03 - Linux搭建go语言交叉环境

    编译GO 1.6版本以上的需要依赖GO 1.4版本的二进制,并且需要把GOROOT_BOOTSTRAP的路径设置为1.4版本GO的根目录,这样它的bin目录就可以直接使用到1.4版本的GO 搭建go语 ...

随机推荐

  1. [luogu3878][TJOI2010]分金币【模拟退火】

    题目描述 现在有n枚金币,它们可能会有不同的价值,现在要把它们分成两部分,要求这两部分金币数目之差不超过1,问这样分成的两部分金币的价值之差最小是多少? 分析 根据模拟退火的基本套路,先随机分两堆金币 ...

  2. ajaxmin.exe 命令参数

    这个工具用来压缩JS和CSS文件的,可去掉多余空格,换行,还修改函数名变得难以读取等. 下载这工具,下载之后是一个.msi文件可以安装.安装之后在命令行里操作即可 (下载地址和文档) http://a ...

  3. 外围功能电路控制 LET′S TRY“嵌入式编程”: 4 of 6

    外围功能电路控制 LET′S TRY“嵌入式编程”: 4 of 6 本连载讲解作为嵌入式系统开发技术人员所必需具备的单片机的基础知识. 在<单片机入门(1)-(3)>中,我们一起学习了单片 ...

  4. 利用LVS+Keepalived搭建Mysql双主复制高可用负载均衡环境

    应用背景: MySQL复制(主主,主从...)能在保证数据的备份的同时也能够做读写分离分摊系统压力,但是发生单点故障时,需要手动 切换到另外一台主机.LVS和Keppalived可以设定一个VIP来实 ...

  5. 生成SSH密钥添加到GitHub

    将自己的过程和踩坑写下来 一.检查是否有SSH 1.打开Git的目录文件,下图是我电脑中git的文件目录 2.点击git-bash.exe,输入ssh查看电脑中是否已存在ssh,会出现以下结果,证明已 ...

  6. 【CF1141E】Superhero Battle

    \[x*p\ge y\rightarrow x=\lfloor{{y-1}\over p}\rfloor+1\]

  7. 基于Senparc.CO2NET 缓存策略扩展的缓存使用方法

    没啥说的,直接上代码 1.缓存  CacheFactory 实现: //---------------------------------------------------------------- ...

  8. html 网页背景图片根据屏幕大小CSS自动缩放

    https://blog.csdn.net/coslay/article/details/47109281 腾讯微博和QQ空间的登录背景图片是根据访客的屏幕大小自动缩放的,但是好像是用JQuery代码 ...

  9. fcntl F_GETFL

    F_GETFL 我的理解是file get flag #include <stdio.h>#include <fcntl.h>#include <unistd.h> ...

  10. Nginx上部署HTTPS + HTTP2

    Nginx上部署HTTPS依赖OpenSSL库和包含文件,即须先安装好libssl-dev(或者OpenSSL),且ln -s /usr/lib/x86_64-linux-gnu/libssl.so ...