docker 系列: 具名匿名挂载介绍
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker 系列: 具名匿名挂载介绍相关的知识,希望对你有一定的参考价值。
今天给大家聊聊docker具名、匿名挂载的相关知识,一起来学学吧!
匿名挂载
1.1 含义
匿名挂载就是指定容器内路径,dockers run 每挂载一个目录就会宿主主机自动创建一个随机字符串的目录。目录/var/lib/docker/volumes/随机字符串。
注意:里面的\\_data目录和对应容器内目录进行同步
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
宿主主机
容器内部
具名挂载
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
具体的文件同步和匿名挂载一样,大家可以自己测试。
查看挂载数据卷命令
docker volume ls
4、总结
宿主主机挂载目录对应同步的文件在\\_data 目录里面。双向实时同步。
指定具体的挂载目录名,便于查找和管理,如果你的容器比较多,都是不可读的字符串,那么可维护性会比较差,建议采用具名挂载。
以上是关于docker 系列: 具名匿名挂载介绍的主要内容,如果未能解决你的问题,请参考以下文章
第136天学习打卡(Docker 容器数据卷 安装MySQL 具名和匿名挂载 初识Dockerfile)