Docker具名挂载和匿名挂载

Posted 大忽悠爱忽悠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker具名挂载和匿名挂载相关的知识,希望对你有一定的参考价值。

Docker具名挂载和匿名挂载


结论

匿名挂载:卷挂载只写容器里面的路径,不写容器外的路径

如何确定是匿名挂载还是具名挂载,还是指定路径挂载

-v 容器内路径 #匿名挂载
-v 卷名:容器内路径 #具名挂载
-v /宿主内路径:容器内路径 #指定路径挂载


1、匿名挂载

# docker run -d -P --name nginx01 -v /etc/nginx nginx
 
//端口映射-p(小写)、-P(大写)区别
-p指定要映射的端口,一个指定端口上只可以绑定一个容器
-P将容器内部开放的网络端口随机映射到宿主机的一个端口上,即对外开放的端口是随机的

查看所有volume情况

# docker volume ls
DRIVER              VOLUME NAME
local               4a3daf61b2e4f14edd92eaf84515b82ac863ca945497b5a71642506b88cfea49
local               78a889203c9cd658a64b6bf25870bea2a25a11e127aa48b027d0750f44a7cc78
local               2985c543eadf37ced04f451c8bd056df2032518eab3dc1e00c24766ac2aaf8b5
local               c0cf9727552b0df0ebd88919cab016730450a3a1a31f48905c7b88cf2152dd36
local               c00400d2fea2d074078b8f20d03c111df306beb6385aeed2d86a101e3b3bfe72
local               ce7cc5dac50c58ff44a5f13f84d00e2100fadbcf1fea2788b334854f2e4c1080
local               ffe9eafba04a7e2ae4d7e12f1049c47f041a3d6b0eb6bcfa4734f08184cfb460

这里发现,这种就是匿名挂载,我们在-v 只写了容器内的路径,没有写容器的路径!


2.具名挂载

具名挂载:就是挂载的卷定义一个自己的名字,可以方便的查找

# docker run -d -P --name nginx02 -v Bertram:/etc/nginx nginx
# docker volume ls
DRIVER              VOLUME NAME
.....
local               Bertram

查看卷所对应的路径

# docker volume inspect Bertram
[
    {
        "CreatedAt": "2020-10-19T15:24:58+08:00",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/data/docker/volumes/Bertram/_data",
        "Name": "Bertram",
        "Options": null,
        "Scope": "local"
    }
]

所有的docker容器内的卷,没有指定目录的情况下都是在 '/data/docker/volumes’目录下

这里默认的存储路径是修改过的,如何修改大家可以参考这篇文章

我们通过具名挂载以方便的找到我们的一个卷,大多数使用的都是具名挂载。


ro和rw

# 通过 -v 容器内路径,ro rw改变读写权限
ro readonly  #只读
rw readwrite #可读可写
 
# 一旦这个设置了容器权限,容器对我们挂载出来的内容就有了限定
docker run -d -P --name nginx02 -v Bertram:/etc/nginx:ro nginx
docker run -d -P --name nginx02 -v Bertram:/etc/nginx:rw nginx
# 只要看到ro就说明这个路径只能通过宿主机来操作,容器内无法操作。

以上是关于Docker具名挂载和匿名挂载的主要内容,如果未能解决你的问题,请参考以下文章

docker容器数据卷 - 具名挂载和匿名挂载

docker容器数据卷 - 具名挂载和匿名挂载

第136天学习打卡(Docker 容器数据卷 安装MySQL 具名和匿名挂载 初识Dockerfile)

linux12 - docker容器05 --> 数据卷挂载实战MySQL同步数据

学Docker(超详细)

Docker 挂载数据卷的四种方式