docker中的具名和匿名挂载

匿名挂载

-v 容器内路径

bash 复制代码
[root@wq ~]# docker run -d -P --name nginx01 -v /etc/nginx nginx
b250dffbd5f0d1cb0e4717dab6bf5212ae378869099aa1a6ece08a25519554a7

查看所有的volume的情况

bash 复制代码
[root@wq ~]# docker volume ls
DRIVER    VOLUME NAME
local     2bc73b32eed4d03921aa7d35f20aab1f73c201c5f308d2f26a3d456bc0d828ff
local     3bbe398160767dc2057304101bfa27833639a1c7a95efbb8c6f9f061c098564e
local     3d6a64847b630a9d179be5244a8934d4c1126fc0ca0d4d0fc0cd207a6de7cabd
local     3eef68bdfd5764d8143ed229cab502bf73d6d7ad4b6b594e68a6b1a22e00b65c
local     3efde05bd7647fa8e65a1edbecbdabdda901adabe870c8cc9778f1da5b9a169a
local     5d378e391447afef3921a634a2502c72fd6fda5bb3ac028254beb096574c2573
local     6c36d9e679720885336285bdcb47f50f9981f8ca1cb30e5cf9295d0cfda146ae
local     7d7068519c1d8ec67ba7d1ff622bf16f779d5b97c476356987430d497e94b717
local     30f4cf6c84377e741a58aa7c3d6995728e2e1e464da1b02c5bb414d767d798ec
local     233f9fce510f9eef47df92a507f428fcd1ed890a3fa16de0b780cbc548fe3b4e
local     343bf5c1e622485c4eb87eafa3c2c963bc1204bdda172262e9b8f09c179f6543
local     626ec0f458728503b0fa1355baa9895a0d25ffcd3a6b1f5df8c12e7041062674
local     891d3ec1e8a43cd601e39ddc7627ca85121c0e53b507b776ad5a755bfbf6c7a7
local     948cf964e2f432667eb38f78ee34b1791dddbd01f2d8765604aabf8e32105690
local     4432df4a0386a1b5f1615843c1e8fe00fa1b6b5780e64c8e165b181e81cece0d
local     6144ab1022e6c30bcb6ad42a3e18e00037053d66615a83a5405099c4927a791a
local     7510f5c32293a7843eba4e68f87fbdf3f0cd458c63fbac4c8dbdb9a0e0a82156
local     04662218e6f5c32ecf215270cf5de653d196b836157d9a8ddf956326209c7629
local     728797588e459a13f38c87989f3ee7ace2feb03fa668550fa4db08422d6490ab
local     a7e3a06505401b1d92436565b0868fde57a591a1f32ae80d9ebe8bf4edc4a813
local     a872bb5c50d066773b0f9d8e605698e5ed8aba37523bddb0047fe031445e2bac
local     b9a14eb4d6e24b809a55dac6e815148a69daae846c42eb71e343c33f1301860d
local     c1d12a08fa2949d33285641906c320b69438db13563433c8a7c0eedb9622a1c0
local     db137af635162b0e832f1a6fc0dd54462f2b68d84aba59dd5540cd9fd72c98ab
local     dc891f1f76ea5e6621bd97b0bc310426945ea86b3b68d6762c6aef4f1428cded
local     f351553e7c1bf42a4c9cc8d1157ec1793f4c599ef4c5f37179780113084c9613
[root@wq ~]#

没有名字(纯id号)的卷叫匿名卷,这种就是匿名挂载,在运行容器的时候-v只写了容器内的路径,没有写容器外的路径

具名挂载

bash 复制代码
[root@wq ~]# docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx nginx
b429667191173246f8ba2e49a1da4eddfd54746ff17b5c8846a3b499a808cc06

查看volume的情况

bash 复制代码
[root@wq ~]# docker volume ls
DRIVER    VOLUME NAME
local     2bc73b32eed4d03921aa7d35f20aab1f73c201c5f308d2f26a3d456bc0d828ff
local     3bbe398160767dc2057304101bfa27833639a1c7a95efbb8c6f9f061c098564e
local     3d6a64847b630a9d179be5244a8934d4c1126fc0ca0d4d0fc0cd207a6de7cabd
local     3eef68bdfd5764d8143ed229cab502bf73d6d7ad4b6b594e68a6b1a22e00b65c
local     3efde05bd7647fa8e65a1edbecbdabdda901adabe870c8cc9778f1da5b9a169a
local     5d378e391447afef3921a634a2502c72fd6fda5bb3ac028254beb096574c2573
local     6c36d9e679720885336285bdcb47f50f9981f8ca1cb30e5cf9295d0cfda146ae
local     7d7068519c1d8ec67ba7d1ff622bf16f779d5b97c476356987430d497e94b717
local     30f4cf6c84377e741a58aa7c3d6995728e2e1e464da1b02c5bb414d767d798ec
local     233f9fce510f9eef47df92a507f428fcd1ed890a3fa16de0b780cbc548fe3b4e
local     343bf5c1e622485c4eb87eafa3c2c963bc1204bdda172262e9b8f09c179f6543
local     626ec0f458728503b0fa1355baa9895a0d25ffcd3a6b1f5df8c12e7041062674
local     891d3ec1e8a43cd601e39ddc7627ca85121c0e53b507b776ad5a755bfbf6c7a7
local     948cf964e2f432667eb38f78ee34b1791dddbd01f2d8765604aabf8e32105690
local     4432df4a0386a1b5f1615843c1e8fe00fa1b6b5780e64c8e165b181e81cece0d
local     6144ab1022e6c30bcb6ad42a3e18e00037053d66615a83a5405099c4927a791a
local     7510f5c32293a7843eba4e68f87fbdf3f0cd458c63fbac4c8dbdb9a0e0a82156
local     04662218e6f5c32ecf215270cf5de653d196b836157d9a8ddf956326209c7629
local     728797588e459a13f38c87989f3ee7ace2feb03fa668550fa4db08422d6490ab
local     a7e3a06505401b1d92436565b0868fde57a591a1f32ae80d9ebe8bf4edc4a813
local     a872bb5c50d066773b0f9d8e605698e5ed8aba37523bddb0047fe031445e2bac
local     b9a14eb4d6e24b809a55dac6e815148a69daae846c42eb71e343c33f1301860d
local     c1d12a08fa2949d33285641906c320b69438db13563433c8a7c0eedb9622a1c0
local     db137af635162b0e832f1a6fc0dd54462f2b68d84aba59dd5540cd9fd72c98ab
local     dc891f1f76ea5e6621bd97b0bc310426945ea86b3b68d6762c6aef4f1428cded
local     f351553e7c1bf42a4c9cc8d1157ec1793f4c599ef4c5f37179780113084c9613
local     juming-nginx
[root@wq ~]#

最后一个就是具名

通过-v 卷名:容器内路径

查看一下这个卷

bash 复制代码
[root@wq ~]# docker volume inspect juming-nginx
[
    {
        "CreatedAt": "2024-03-02T20:05:22+08:00",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/juming-nginx/_data",
        "Name": "juming-nginx",
        "Options": null,
        "Scope": "local"
    }
]

所有的docker容器内的卷,没有指定目录的情况下都是在/var/lib/docker/volumes/卷名/_data

bash 复制代码
[root@wq ~]# cd /var/lib/docker/volumes/
[root@wq volumes]# ls
04662218e6f5c32ecf215270cf5de653d196b836157d9a8ddf956326209c7629
233f9fce510f9eef47df92a507f428fcd1ed890a3fa16de0b780cbc548fe3b4e
2bc73b32eed4d03921aa7d35f20aab1f73c201c5f308d2f26a3d456bc0d828ff
30f4cf6c84377e741a58aa7c3d6995728e2e1e464da1b02c5bb414d767d798ec
343bf5c1e622485c4eb87eafa3c2c963bc1204bdda172262e9b8f09c179f6543
3bbe398160767dc2057304101bfa27833639a1c7a95efbb8c6f9f061c098564e
3d6a64847b630a9d179be5244a8934d4c1126fc0ca0d4d0fc0cd207a6de7cabd
3eef68bdfd5764d8143ed229cab502bf73d6d7ad4b6b594e68a6b1a22e00b65c
3efde05bd7647fa8e65a1edbecbdabdda901adabe870c8cc9778f1da5b9a169a
4432df4a0386a1b5f1615843c1e8fe00fa1b6b5780e64c8e165b181e81cece0d
5d378e391447afef3921a634a2502c72fd6fda5bb3ac028254beb096574c2573
6144ab1022e6c30bcb6ad42a3e18e00037053d66615a83a5405099c4927a791a
626ec0f458728503b0fa1355baa9895a0d25ffcd3a6b1f5df8c12e7041062674
6c36d9e679720885336285bdcb47f50f9981f8ca1cb30e5cf9295d0cfda146ae
728797588e459a13f38c87989f3ee7ace2feb03fa668550fa4db08422d6490ab
7510f5c32293a7843eba4e68f87fbdf3f0cd458c63fbac4c8dbdb9a0e0a82156
7d7068519c1d8ec67ba7d1ff622bf16f779d5b97c476356987430d497e94b717
891d3ec1e8a43cd601e39ddc7627ca85121c0e53b507b776ad5a755bfbf6c7a7
948cf964e2f432667eb38f78ee34b1791dddbd01f2d8765604aabf8e32105690
a7e3a06505401b1d92436565b0868fde57a591a1f32ae80d9ebe8bf4edc4a813
a872bb5c50d066773b0f9d8e605698e5ed8aba37523bddb0047fe031445e2bac
b9a14eb4d6e24b809a55dac6e815148a69daae846c42eb71e343c33f1301860d
backingFsBlockDev
c1d12a08fa2949d33285641906c320b69438db13563433c8a7c0eedb9622a1c0
db137af635162b0e832f1a6fc0dd54462f2b68d84aba59dd5540cd9fd72c98ab
dc891f1f76ea5e6621bd97b0bc310426945ea86b3b68d6762c6aef4f1428cded
f351553e7c1bf42a4c9cc8d1157ec1793f4c599ef4c5f37179780113084c9613
juming-nginx
metadata.db
[root@wq volumes]# cd juming-nginx/
[root@wq juming-nginx]# ls
_data
[root@wq juming-nginx]# cd _data/
[root@wq _data]# ls
conf.d  fastcgi_params  mime.types  modules  nginx.conf  scgi_params  uwsgi_params
[root@wq _data]#

通过具名挂载可以方便找到一个卷,大多情况下使用的具名挂载

判断是具名挂载还是匿名挂载,还是指定路径挂载

-v 容器内路径 #匿名挂载

-v 卷名:容器内路径 #具名挂载

-v /宿主机路径:容器内路径 #指定路径挂载

拓展:

通过-v 容器内路径:ro rw 改变读写权限

ro #只读

rw #可读可写

#设置容器权限之后,对挂载出来的内容就有限制了

bash 复制代码
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:ro nginx
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:rw nginx

ro 只能通过宿主机来操作,容器内部是无法操作

相关推荐
java叶新东老师6 分钟前
linux 部署 flink 1.15.1 并提交作业
linux·运维·flink
程序员JerrySUN1 小时前
Linux系统架构核心全景详解
linux·运维·系统架构
无敌的牛1 小时前
Linux文件理解,基础IO理解
linux·运维·服务器
angushine1 小时前
鲲鹏服务器logstash采集nginx日志
运维·服务器·nginx
未来之窗软件服务1 小时前
跨平台 WebSocket 服务器的设计与实现 —— 基于.NET 8 的跨操作系统解决方案linux,macos,windows——开发工具
linux·服务器·websocket·仙盟创梦ide·东方仙盟
睿思达DBA_WGX1 小时前
由于主库切换归档路径导致的 Oracle DG 无法同步问题的解决过程
运维·数据库·oracle
土豆丶杨1 小时前
centos 配置docker
docker·eureka·centos
杰哥的狗2 小时前
nacos连接失败,启动失败常见问题
linux·docker
Jackilina_Stone2 小时前
【faiss】用于高效相似性搜索和聚类的C++库 | 源码详解与编译安装
android·linux·c++·编译·faiss
XXYBMOOO2 小时前
Xilinx-FPGA-PCIe-XDMA 驱动内核兼容性问题修复方案
linux·运维·服务器