云原生

05-Docker挂载

2021-10-14  本文已影响0人  紫荆秋雪_文

一、挂载类型

无论是使用那种类型的挂载,容器内的数据看起来都是一样的。它作为目录或容器文件系统中的单个文件。卷挂载(volumes)、绑定挂载(bind mounts)和tmpfs mounts挂载之间的区别就在于数据在 Docker 主机上的位置

image.png

卷挂载(volumes)

绑定挂载(bind mounts)

tmpfs mounts挂载

二、卷挂载(volumes):推荐使用

卷挂载.png
docker volume create

1、卷比绑定的优势

2、-v 或 --mount

3、创建和管理卷

docker volume create ravenVolume
docker volume ls
DRIVER    VOLUME NAME
local     9350882ceed3c7b76f6b691d1a3293b5b2e462e3cc5682febba8c39cda0b5025
local     ravenVolume
docker volume inspect ravenVolume
[
    {
        "CreatedAt": "2021-10-13T10:11:23+08:00",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/ravenVolume/_data",
        "Name": "ravenVolume",
        "Options": {},
        "Scope": "local"
    }
]
docker volume rm ravenVolume

4、启动容器时并挂载卷

4.1、匿名卷启动容器,挂载Nginx html静态界面

docker run -d -p 80:80 -v /usr/share/nginx/html nginx
local     fe86f2ed452fe28b6ddd95cb4b4a4d9c624b2aea5a358225aa8eaa457b3a2fd5
docker inspect 93
"Mounts": [
            {
                "Type": "volume",
                "Name": "fe86f2ed452fe28b6ddd95cb4b4a4d9c624b2aea5a358225aa8eaa457b3a2fd5",
                "Source": "/var/lib/docker/volumes/fe86f2ed452fe28b6ddd95cb4b4a4d9c624b2aea5a358225aa8eaa457b3a2fd5/_data",
                "Destination": "/usr/share/nginx/html",
                "Driver": "local",
                "Mode": "",
                "RW": true,
                "Propagation": ""
            }
        ]
cd /var/lib/docker/volumes/fe86f2ed452fe28b6ddd95cb4b4a4d9c624b2aea5a358225aa8eaa457b3a2fd5/_data
50x.html  index.html

4.2、启动容器时挂载具名卷,Docker会为您创建该卷

docker run -d -p 80:80 -v mynginx:/usr/share/nginx/html nginx:latest
DRIVER    VOLUME NAME
local     mynginx
"Mounts": [
            {
                "Type": "volume",
                "Name": "mynginx",
                "Source": "/var/lib/docker/volumes/mynginx/_data",
                "Destination": "/usr/share/nginx/html",
                "Driver": "local",
                "Mode": "z",
                "RW": true,
                "Propagation": ""
            }
        ]
cd /var/lib/docker/volumes/mynginx/_data

-rw-r--r-- 1 root root 497 Sep  7 23:21 50x.html
-rw-r--r-- 1 root root 615 Sep  7 23:21 index.html

三、绑定挂载(bind mounts) 图片来自官网.png

1、绑定操作造成空挂载

docker run -d -p 80:80 -v "$(pwd)"/html:/usr/share/nginx/html nginx:latest

小结

四、tmpfs mounts挂载

五、OverlayFS 存储驱动程序

image.png

1、overlay工作原理

OverlayFS 在单个Linux主机上分为两个目录,并将它们呈现为单个目录。这些目录称为,统一过程称为联合挂载。OverlayFS指的是下层目录(lowerdir)和上层目录(upperdir)。统一视图称为merged

2、Docker镜像和Docker容器是如何分层的

上一篇 下一篇

猜你喜欢

热点阅读