Docker 如何查询挂载的目录

Docker 如何查询挂载的目录

要查询 Docker 容器的挂载目录,最核心、最准确的方法是使用 docker inspect 命令。下面为你介绍几种从简到繁的实用方法。

🎯 方法一:使用格式化命令(最推荐)

这是最高效的方式,可以清晰地列出所有挂载信息,包括挂载类型、宿主机路径和容器内路径。

请将 <容器名或ID> 替换为你的实际容器名称或 ID。

bash 复制代码
docker inspect <容器名或ID> --format='{{range .Mounts}}{{.Type}}: {{.Source}} -> {{.Destination}} ({{.Mode}}){{println}}{{end}}'

输出示例:

text 复制代码
bind: /home/user/project -> /app (rw)
volume: my_data_volume -> /var/lib/mysql (rw)
  • Type : 挂载类型。bind 表示绑定宿主机目录,volume 表示使用 Docker 管理的命名卷。
  • Source : 宿主机上的源路径(对于 volume 类型,这里显示的是卷名)。
  • Destination: 容器内的目标路径。
  • Mode : 读写权限,rw 为可读可写,ro 为只读。

如果你想一次性查看所有正在运行的容器的挂载情况,可以使用这条命令:

bash 复制代码
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 字段。

bash 复制代码
docker inspect <容器名或ID>

在返回的 JSON 数据中,寻找 "Mounts" 部分,它会包含每个挂载点的详细信息,如 Type, Source, Destination, RW 等。

🧭 方法三:针对不同类型的挂载进行溯源

1. 查找 Docker Volume 的真实路径

当挂载类型为 volume 时,Source 字段只显示卷名。要找到该卷在宿主机上的真实存储路径,需要使用 docker volume inspect 命令。

bash 复制代码
# 首先列出所有卷
docker volume ls

# 然后查看指定卷的详细信息
docker volume inspect <卷名>

在输出的 JSON 中,"Mountpoint" 字段的值就是该卷在宿主机上的绝对路径,通常位于 /var/lib/docker/volumes/<卷名>/_data。

2. 进入容器内部验证

你也可以直接进入容器,通过查看系统挂载信息来验证。

bash 复制代码
# 进入容器
docker exec -it <容器名或ID> sh

# 在容器内部执行
cat /proc/mounts
# 或者
mount | grep -v "proc\|sys"

这些命令会列出容器内的所有挂载点,你可以从中识别出由外部挂载进来的目录。

相关推荐
Android系统攻城狮16 分钟前
Linux Gstreamer深度解析之gst_audio_sink_get_type调用流程与实战(六十五)
linux·运维·服务器·音视频·gstreamer音视频·音视频进阶·gstreamer音视频进阶
元Y亨H1 小时前
基于 Jenkins + Docker 的前端(Vben Admin)CI/CD 踩坑
docker·jenkins
云贝贝贝2 小时前
PostgreSQL 分区表:从设计到运维,大表不再卡
运维·数据库·postgresql
wzq11_6662 小时前
kubernetes集群——灰度发布
云原生·容器·kubernetes
白兰地空瓶2 小时前
项目要上线了,我连夜学完 Docker:从底层原理到容器化部署全记录
docker·全栈
fengkai45453 小时前
十二、Redis -1
运维·数据库·redis
甜到心里的蛋糕3 小时前
Playwright 无头浏览器自动发布 CSDN 图文草稿的实践(持久化 profile + 图床直传)
运维·python·playwright·爬虫自动化·博客运营
凌云若寒4 小时前
BarTender提示#807错误:无法在拥有其他许可证的Licensing Service上激活节点锁定的 Professional 版许可证 的解决办法
运维·服务器·前端·学习·软件需求
Knight_AL4 小时前
PostgreSQL Docker 数据库备份:pg_dump 与 SQL 格式备份的区别
数据库·docker·postgresql
Julien20045 小时前
管理 Ansible 配置文件
linux·运维·服务器·ssh·学习方法