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

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

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

图片

匿名挂载​

1、含义​

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

图片

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

图片


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​​

图片

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

宿主主机:

图片

容器内部:

图片

具名挂载

1、含义

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

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 目录里面。双向实时同步。指定具体的挂载目录名,便于查找和管理,如果你的容器比较多,都是不可读的字符串,那么可维护性会比较差,建议采用具名挂载。

责任编辑:姜华 来源: IT技术分享社区
相关推荐

2022-10-14 07:07:46

架构

2022-08-04 07:25:22

Docker部署项目

2009-08-27 10:19:22

C#匿名类型

2009-08-20 16:25:59

C# 匿名方法

2009-12-25 14:24:59

自动挂载FAT分区

2010-03-09 15:39:09

Linux硬盘挂载

2010-03-09 15:59:08

Linux硬盘挂载

2021-03-29 10:29:09

LinuxdockerLinux系统

2023-09-07 07:13:51

2010-11-01 06:43:21

PowerShell

2022-01-11 10:29:32

Docker文件挂载

2022-03-10 08:24:17

Docker容器SaaS

2009-12-17 17:41:52

2009-09-28 10:24:58

Hibernate基础

2011-06-21 14:42:37

ECMAScriptJavaScript

2009-09-22 09:27:29

Hibernate P

2022-07-26 07:14:52

Docker宿主命令

2018-04-20 15:24:55

DockerfileDocker镜像

2017-01-13 15:39:29

Linux进程基础介绍

2011-06-22 12:57:54

JVM
点赞
收藏

51CTO技术栈公众号