首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Docker具名挂载和匿名挂载

Docker具名挂载和匿名挂载

作者头像
大忽悠爱学习
发布2021-11-19 16:18:41
发布2021-11-19 16:18:41
2.4K00
代码可运行
举报
文章被收录于专栏:c++与qt学习c++与qt学习
运行总次数:0
代码可运行


结论

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

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

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


1、匿名挂载

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

查看所有volume情况

代码语言:javascript
代码运行次数:0
运行
复制
# docker volume ls
DRIVER              VOLUME NAME
local               4a3daf61b2e4f14edd92eaf84515b82ac863ca945497b5a71642506b88cfea49
local               78a889203c9cd658a64b6bf25870bea2a25a11e127aa48b027d0750f44a7cc78
local               2985c543eadf37ced04f451c8bd056df2032518eab3dc1e00c24766ac2aaf8b5
local               c0cf9727552b0df0ebd88919cab016730450a3a1a31f48905c7b88cf2152dd36
local               c00400d2fea2d074078b8f20d03c111df306beb6385aeed2d86a101e3b3bfe72
local               ce7cc5dac50c58ff44a5f13f84d00e2100fadbcf1fea2788b334854f2e4c1080
local               ffe9eafba04a7e2ae4d7e12f1049c47f041a3d6b0eb6bcfa4734f08184cfb460

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


2.具名挂载

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

代码语言:javascript
代码运行次数:0
运行
复制
# docker run -d -P --name nginx02 -v Bertram:/etc/nginx nginx
# docker volume ls
DRIVER              VOLUME NAME
.....
local               Bertram

查看卷所对应的路径

代码语言:javascript
代码运行次数:0
运行
复制
# 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

代码语言:javascript
代码运行次数:0
运行
复制
# 通过 -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就说明这个路径只能通过宿主机来操作,容器内无法操作。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/10/11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 结论
  • 1、匿名挂载
  • 2.具名挂载
  • ro和rw
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档