docker 系列: 具名、匿名挂载介绍

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

今天给大家聊聊docker具名、匿名挂载的相关知识,一起来学学吧!

image_a9b5e30f.png

image_db3ff198.png

  1. 匿名挂载

1.1 含义

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

image_e237efbc.png

注意:里面的\_data目录和对应容器内目录进行同步

image_a2fe35d4.png

1.2 匿名挂载示例

运行容器
docker run -d -p 8000:80  --name nginxtest -v /etc/nginx nginx 
查看nginxtest容器目录挂载情况
docker inspect --format="{
      
        
        {json .Mounts}}" 7880ad6076b1

查看挂载内容如下:

[
    {
      
        
        
 "Type":"volume"undefined
        "Name":"6d05e4012610c5427b589f38009ade0d90bd5009896d251f545979ddb736e1b8"undefined        "Source":"/var/lib/docker/volumes/6d05e4012610c5427b589f38009ade0d90bd5009896d251f545979ddb736e1b8/_data"undefined
        "Destination":"/etc/nginx"undefined 
        "Driver":"local"undefined
        "Mode":""undefined
        "RW":trueundefined
        "Propagation":""
    }
]

返回参数说明:

  • 容器内路径:Destination:/var/lib/docker/volumes/6d05e4012610c5427b589f38009ade0d90bd5009896d251f545979ddb736e1b8/\_data
  • 宿主主机路径:Source:/etc/nginx

1.3 文件同步测试

宿主主机测试命令

#进入挂载目录,创建 1.txt 文件
cd /var/lib/docker/volumes/6d05e4012610c5427b589f38009ade0d90bd5009896d251f545979ddb736e1b8/_data
touch 1.txt

容器内部测试命令

docker exec -it nginxtest /bin/bash
cd /etc/nginx 
touch 22.txt

宿主主机

image_d601f085.png

容器内部

image_d3319843.png

  1. 具名挂载

2.1 含义

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

2.2 具名挂载示例

#运行容器
docker run -d -p 8001:80  --name nginxtest02 -v nginxtest02:/etc/nginx nginx 
#查看容器挂载目录
docker inspect --format="{
      
        
        {json .Mounts}}" 4cd1e3241698

查看容器挂载内容

[
    {
      
        
        
        "Type":"volume"undefined
        "Name":"nginxtest02"undefined
        "Source":"/var/lib/docker/volumes/nginxtest02/_data"undefined
        "Destination":"/etc/nginx"undefined
        "Driver":"local"undefined
        "Mode":"z"undefined
        "RW":trueundefined
        "Propagation":""
    }
]

返回参数说明:

容器内路径:Destination:/etc/nginx

宿主主机路径:Source:/var/lib/docker/volumes/nginxtest02/\_data

具体的文件同步和匿名挂载一样,大家可以自己测试。

  1. 查看挂载数据卷命令

docker volume ls

image_405e46ed.png

4、总结

宿主主机挂载目录对应同步的文件在\_data 目录里面。双向实时同步。

指定具体的挂载目录名,便于查找和管理,如果你的容器比较多,都是不可读的字符串,那么可维护性会比较差,建议采用具名挂载。

相关文章
|
28天前
|
存储 Docker 容器
docker中挂载数据卷到容器
【10月更文挑战第12天】
67 5
|
22天前
|
存储 缓存 Docker
docker中挂载数据卷到容器
【10月更文挑战第16天】
23 2
|
24天前
|
存储 Docker 容器
docker中挂载现有目录作为数据卷
【10月更文挑战第14天】
16 1
|
24天前
|
存储 关系型数据库 MySQL
|
25天前
|
存储 Docker 容器
docker中挂载数据卷到容器
【10月更文挑战第13天】
24 2
|
28天前
|
存储 关系型数据库 MySQL
docker中数据卷的创建与挂载
【10月更文挑战第12天】
14 3
|
29天前
|
存储 测试技术 开发者
docker中将数据卷挂载到容器
【10月更文挑战第11天】
34 3
|
1月前
|
Linux Docker Windows
docker中使用绑定挂载(Bind mounts)
【10月更文挑战第9天】
45 1
|
6月前
|
应用服务中间件 nginx Docker
Docker部署Nginx以及挂载数据卷(代码详细展示)_nginx 挂载大文件卷(1)
Docker部署Nginx以及挂载数据卷(代码详细展示)_nginx 挂载大文件卷(1)
|
1月前
|
Docker 容器
Docker数据卷挂载
这篇文章讲解了如何在Docker中使用数据卷挂载来持久化容器数据,并提供了相关命令和操作步骤。
30 0