Docker Compose绑定多卷后容器内df -h仅显第一卷的原因排查
问题原因与解决
你遇到的情况是正常的,核心原因是绑定挂载的显示逻辑差异:
docker container inspect直接读取Docker的配置元数据,所以能完整列出所有定义的挂载项,不管挂载目标在容器内是否原本存在。df -h只显示被系统识别为独立文件系统的挂载点。如果绑定挂载的目标目录是容器镜像中原本就存在的目录(比如nginx镜像里的/docs),挂载操作只是替换了该目录的内容,系统不会将其作为新的独立文件系统条目在df -h中显示;而/app是镜像里不存在的目录,挂载时会创建这个目录,同时被识别为新的挂载点,因此会出现在df -h的输出里。
验证挂载是否正常生效
不需要依赖df -h,可以通过以下方式确认两个挂载都在工作:
- 进入容器:
docker exec -it nginx bash - 查看所有挂载条目:
你会看到两行对应两个绑定挂载的记录,证明挂载已生效。mount | grep -E '/app|/docs' - 直接检查目录内容:
查看/docs目录下的文件,确认和宿主机./../docs路径下的文件一致,说明挂载功能正常。
总结:这种现象不影响挂载功能,只是系统工具的显示逻辑不同而已。
内容的提问来源于stack exchange,提问作者Nissanka
相关产品推荐
相关产品推荐

