1、什么是匿名挂载、具名挂载?

03a6d1b109efc38ba61863e350421669d03004.png

2、匿名挂载

2.1、匿名挂载含义
匿名挂载就是指定容器内路径,docker run每挂载一个目录就会宿主机自动创建一个随机字符串的目录,目录/var/lib/docker/volumes/随机字符串。

2023-06-29_093635.jpg

2.2、匿名挂载示例

参数说明:
-v 容器内径
[root@localhost ~]# docker run -d -p 8000:80 --name nginxtest -v /etc/nginx nginx
1d4da194d7dc14ed7955e1b719bc8ec8e0eafc3a863cd621dc0346af47ee22fd
[root@localhost ~]#
查看nginxtest容器目录挂载情况
[root@localhost ~]# docker inspect --format="{{json .Mounts}}" 1d4da194d7dc
[{"Type":"volume","Name":"630d8c949c480e4cf76eb30934ac1b195f001860f33bdaafde347b189f1adc9e","Source":"/var/lib/docker/volumes/630d8c949c480e4cf76eb30934ac1b195f001860f33bdaafde347b189f1adc9e/_data","Destination":"/etc/nginx","Driver":"local","Mode":"","RW":true,"Propagation":""}]
[root@localhost ~]# 
返回参数说明:
宿主机路径:/var/lib/docker/volumes/630d8c949c480e4cf76eb30934ac1b195f001860f33bdaafde347b189f1adc9e/_data
容器内路径:/etc/nginx

2.3、文件同步测试
在宿主机上进入挂载目录,创建test01.txt文件

[root@localhost ~]# cd /var/lib/docker/volumes/630d8c949c480e4cf76eb30934ac1b195f001860f33bdaafde347b189f1adc9e/_data
[root@localhost _data]# touch test01.txt
[root@localhost _data]# 

容器内部测试创建test02.txt

[root@localhost _data]# docker exec -it 1d4da194d7dc /bin/bash
root@1d4da194d7dc:/# cd /etc/nginx/
root@1d4da194d7dc:/etc/nginx# ls
conf.d        mime.types  nginx.conf     test01.txt
fastcgi_params    modules     scgi_params  uwsgi_params
root@1d4da194d7dc:/etc/nginx# touch test02.txt
root@1d4da194d7dc:/etc/nginx# 

宿主机验证有test01.txt 和test02.txt两个文件
[root@localhost ~]# cd

/var/lib/docker/volumes/630d8c949c480e4cf76eb30934ac1b195f001860f33bdaafde347b189f1adc9e/_data
[root@localhost _data]# ls
conf.d          mime.types  nginx.conf   test01.txt  uwsgi_params
fastcgi_params  modules     scgi_params  test02.txt
[root@localhost _data]#

3、具名挂载

3.1、具名挂载含义
具名挂载就是挂载的同时指定一个具有含义的名字,方便后续容器对应以及后续的运维,便于查找挂载目录。

3.2、具名挂载示例

运行容器
[root@localhost ~]# docker run -d -p 8001:80 --name nginxtest02 -v nginxtest02:/etc/nginx nginx
5f58e32ac09c41509a5170a727af264eb62d119d0bed65a75be64d36e9498ed8
[root@localhost ~]#
查看容器挂载目录
root@localhost ~]# docker inspect --format="{{json .Mounts}}" 5f58e32ac09c
[{"Type":"volume","Name":"nginxtest02","Source":"/var/lib/docker/volumes/nginxtest02/_data","Destination":"/etc/nginx","Driver":"local","Mode":"z","RW":true,"Propagation":""}]
[root@localhost ~]# 
返回参数说明:
容器内路径:/etc/nginx
宿主机路径:/var/lib/docker/volumes/nginxtest02/_data 
具体的文件同步和匿名挂载一样
最后修改:2023 年 07 月 20 日
如果觉得我的文章对你有用,请随意赞赏