文件存储驱动overlay2

    • 本质上镜像和容器都是文件系统,但是镜像是只读、容器是可读写的.
    • docker 数据目录下,overlay2目录中就是各个镜像的只读层,每个目录代表一层

    • l 目录是到各层diff的软链接

    • 使用tree查看某层下目录结构

    • link文件描述了该层标识符的精简版,而lower文件描述了层序的组织关系

    merged 是容器的可读写层

    • 每层的diff即是文件系统在统一挂载时的挂载点,每层具体的文件存放在层标识符下的diff目录下

    • docker run 一个容器之后,会mount2个挂载点

    shm是容器的ip等相关分配的细腻下
    merged是基于原镜像的可读写层
    在merged中进行的修改,通过docker commit CONTAINER_ID 提交之后,会将当前层修改为新的只读层


    • mount |grep overlay2 查看挂载

    /dev/vdb on /home/docker/overlay2 type ext4 (rw,relatime,data=ordered)
    overlay on /home/docker/overlay2/2e0622c152de0aeb6f5044702da960ef56869c078d6df39553aad345581c2ba9/merged type overlay (rw,relatime,lowerdir=/home/docker/overlay2/l/DSDNTSCZYH575HG2666NOTRAFR:/home/docker/overlay2/l/DNTQZXTNLLLNZH6WYE6NEZID3N:/home/docker/overlay2/l/RKTZNNG33MYZIXFXHE6V2ARLTH:/home/docker/overlay2/l/UMSVJK6R7FJYZXQEQCKEIE7FD5:/home/docker/overlay2/l/V22WO7HASHVJWLNAI2VWG56PA6:/home/docker/overlay2/l/S3NEO7MODYFQXD6H6LDBF2FHC5:/home/docker/overlay2/l/55LUIMRKBNVRNLJNCWK2PBN4I5:/home/docker/overlay2/l/YXDCH6OHUVMRN53BP6TX4KKXD3:/home/docker/overlay2/l/3T22VF77FXYZNYR4AEYL6JKW6S:/home/docker/overlay2/l/57XRYXBI56SZQ6PSPIO2F223LC:/home/docker/overlay2/l/G5BICHCVB3VLH5C4JMFABYFMWZ,upperdir=/home/docker/overlay2/2e0622c152de0aeb6f5044702da960ef56869c078d6df39553aad345581c2ba9/diff,workdir=/home/docker/overlay2/2e0622c152de0aeb6f5044702da960ef56869c078d6df39553aad345581c2ba9/work)
    overlay on /home/docker/overlay2/dfc765b8ef96664e3ba9334ddb396d42e69701d6842bed28fadadae20d0b305c/merged type overlay (rw,relatime,lowerdir=/home/docker/overlay2/l/QBENJ4TUPYKSUCBNSPOWOPHLW4:/home/docker/overlay2/l/SGJ3KG4U5EISDD7WYQVEUTIIFU:/home/docker/overlay2/l/N7UOLSRIAN4PJLIMGZKJOV4D3P,upperdir=/home/docker/overlay2/dfc765b8ef96664e3ba9334ddb396d42e69701d6842bed28fadadae20d0b305c/diff,workdir=/home/docker/overlay2/dfc765b8ef96664e3ba9334ddb396d42e69701d6842bed28fadadae20d0b305c/work)
    overlay2将lowerdir、upperdir、workdir联合挂载,形成最终的merged挂载点,其中lowerdir是镜像只读层,upperdir是容器可读可写层,workdir是执行涉及修改lowerdir执行copy_up操作的中转层