Docker查询挂载的目录的几种实用方法
引言
要查询 Docker 容器的挂载目录,最核心、最准确的方法是使用 docker inspect 命令。下面为你介绍几种从简到繁的实用方法。
方法一:使用格式化命令(最推荐)
这是最高效的方式,可以清晰地列出所有挂载信息,包括挂载类型、宿主机路径和容器内路径。
请将 <容器名或ID> 替换为你的实际容器名称或 ID。
docker inspect <容器名或ID> --format='{{range .Mounts}}{{.Type}}: {{.Source}} -> {{.Destination}} ({{.Mode}}){{println}}{{end}}'输出示例:
bind: /home/user/project -> /app (rw) volume: my_data_volume -> /var/lib/mysql (rw)
- Type: 挂载类型。
bind表示绑定宿主机目录,volume表示使用 Docker 管理的命名卷。 - Source: 宿主机上的源路径(对于
volume类型,这里显示的是卷名)。 - Destination: 容器内的目标路径。
- Mode: 读写权限,
rw为可读可写,ro为只读。
如果你想一次性查看所有正在运行的容器的挂载情况,可以使用这条命令:
docker inspect $(docker ps -q) --format='{{printf "\n=== %s ===" .Name}}{{range .Mounts}}{{printf " %-8s %-40s -> %s\n" .Type .Source .Destination}}{{end}}'
方法二:查看完整 JSON 信息
如果你需要更详细的信息,可以直接查看 docker inspect 输出的完整 JSON 数据,并找到 Mounts 字段。
docker inspect <容器名或ID>
在返回的 JSON 数据中,寻找 "Mounts" 部分,它会包含每个挂载点的详细信息,如 Type, Source, Destination, RW 等。
方法三:针对不同类型的挂载进行溯源
1. 查找 Docker Volume 的真实路径
当挂载类型为 volume 时,Source 字段只显示卷名。要找到该卷在宿主机上的真实存储路径,需要使用 docker volume inspect 命令。
# 首先列出所有卷 docker volume ls # 然后查看指定卷的详细信息 docker volume inspect <卷名>
在输出的 JSON 中,"Mountpoint" 字段的值就是该卷在宿主机上的绝对路径,通常位于 /var/lib/docker/volumes/<卷名>/_data。
2. 进入容器内部验证
你也可以直接进入容器,通过查看系统挂载信息来验证。
# 进入容器 docker exec -it <容器名或ID> sh # 在容器内部执行 cat /proc/mounts # 或者 mount | grep -v "proc\|sys"
这些命令会列出容器内的所有挂载点,你可以从中识别出由外部挂载进来的目录。
到此这篇关于Docker查询挂载的目录的几种实用方法的文章就介绍到这了,更多相关Docker查询挂载目录内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
docker容器出现Cannot allocate memory问题及解决过程
文章讨论了Docker容器中出现内存不足问题,通过查看`pid_max`和系统总进程数来定位问题,建议临时增加`pid_max`值,并使用`psmisc`工具查看进程数,如果命令执行失败,需要安装该工具,永久生效的解决方案是修改配置文件,文章最后提醒读者参考和支持脚本之家2026-01-01
Docker容器内无法解析域名:Temporary failure in name resolution
本文主要介绍了Docker容器内无法解析域名:Temporary failure in name resolution,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2026-04-04
Docker容器Container镜像Image如何存储详解
本文主要介绍Docker容器(Container)和镜像(Image)是如何进行数据存储详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-09-09


最新评论