docker 基础:具名、匿名挂载介绍

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

docker 基础:具名、匿名挂载介绍

文章插图
 

docker 基础:具名、匿名挂载介绍

文章插图
 
  1. 匿名挂载
1.1 含义匿名挂载就是指定容器内路径,dockers run 每挂载一个目录就会宿主主机自动创建一个随机字符串的目录 。目录/var/lib/docker/volumes/随机字符串 。
docker 基础:具名、匿名挂载介绍

文章插图
 
注意:里面的_data目录和对应容器内目录进行同步
docker 基础:具名、匿名挂载介绍

文章插图
 
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/_datatouch 1.txt 
容器内部测试命令
 
docker exec -it nginxtest /bin/bashcd /etc/nginx touch 22.txt 
宿主主机
docker 基础:具名、匿名挂载介绍

文章插图
 
容器内部
docker 基础:具名、匿名挂载介绍

文章插图
 
  1. 具名挂载
2.1 含义具名挂载就是挂载的同时指定一个有具体含义的名字,方便后续和容器对应以及后续的运维,便于查找挂载目录 。
2.2 具名挂载示例 
【docker 基础:具名、匿名挂载介绍】#运行容器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
docker 基础:具名、匿名挂载介绍

文章插图
 
4、总结宿主主机挂载目录对应同步的文件在_data 目录里面 。双向实时同步 。
指定具体的挂载目录名,便于查找和管理,如果你的容器比较多,都是不可读的字符串,那么可维护性会比较差,建议采用具名挂载 。




    推荐阅读