轻松查看Docker容器内的目录在宿主机的文件路径

问题背景

Docker容器内的文件环境与宿主机的文件环境是隔离开的,想要实现宿主机内的文件与Docker容器内的文件交互就需要挂载。但既然Docker容器是运行在宿主机上的,那么容器内的文件就一定会存储在宿主机上,那么该如何在宿主机的文件环境中定位到Docker容器的文件呢?

解决方案

可以看到当前我的Docker创建了4个容器,我们选取这个名为"doggy"的Java程序作为示例,查看一下Java程序运行产生的文件在宿主机的文件环境中的路径。

容器启动后在宿主机使用Docker命令:

bash 复制代码
docker inspect doggy

在响应信息中找到Data块:

**LowerDir:**包含多个只读层,每个层都对应一个镜像层。Docker镜像是由多个只读层叠加组成的,每一层都是基于上一个层创建的。

**MergedDir:**包含所有层的合并视图。这个目录就是容器运行时的文件系统视图。是一个挂载点。

**UpperDir:**当前容器层的读写层。任何对容器文件系统的写操作都会写入这个目录。我们的Java程序输出的文件就存放在这个层里。

**WorkDir:**工作目录,用于支持挂载操作的实现。当执行一些文件系统操作(如重命名文件或目录)时,会用到这个目录。

bash 复制代码
"Data": {
                "LowerDir": "/var/lib/docker/overlay2/e97a4e2f66a910dc648f71068dd7cba43ff824f151846eea6aa96b9d03578f41-init/diff:/var/lib/docker/overlay2/o8u2yaj6zj9gtzzhqhfmfh18g/diff:/var/lib/docker/overlay2/5eadp2x9hhq8ccema2qw3o51b/diff:/var/lib/docker/overlay2/l6o0eytii95msolwxee4oggu7/diff:/var/lib/docker/overlay2/3188f5f8c352e699ff7a055cac63a4881a39c484ccdf0b12a716c694d185e924/diff:/var/lib/docker/overlay2/34bb19eb78cac49893b53bf760ddf92880aae1e08fb20c8a09b68d6cb8a8eff9/diff:/var/lib/docker/overlay2/fdb6dbdd7ff804ef6ae1dd4eee8fdf644322eca60c26bac18ef420fe7728d13f/diff",
                "MergedDir": "/var/lib/docker/overlay2/e97a4e2f66a910dc648f71068dd7cba43ff824f151846eea6aa96b9d03578f41/merged",
                "UpperDir": "/var/lib/docker/overlay2/e97a4e2f66a910dc648f71068dd7cba43ff824f151846eea6aa96b9d03578f41/diff",
                "WorkDir": "/var/lib/docker/overlay2/e97a4e2f66a910dc648f71068dd7cba43ff824f151846eea6aa96b9d03578f41/work"
            },

因此我们可以找到UpperDir的路径,在宿主机的文件系统打开可以看到:

这个便是我的Java程序运行时的输出目录了。

SSH工具:XTerminal Mac版

相关推荐
霸道流氓气质18 分钟前
ApiPost 中配置自动获取 Token 并调用业务接口完整指南
java·服务器·数据库
时空无限31 分钟前
vllm 大模型启动缓存相关环境变量 export
linux·缓存·vllm
Echo_cy_39 分钟前
基于ZYNQ-7000的Ethernet驱动配置
linux·驱动开发·嵌入式硬件·fpga开发·ethernet·zynq
ShineWinsu1 小时前
对于Linux:模版方法类的解析以及socket、TcpSocket的封装
linux·c++·面试·socket·模板方法模式·封装·tcpsocket
D2aZXN3FhrDa7e2121 小时前
佛山乐从低预算实体店如何选择?看美诚AI自动化获客方案
运维·人工智能·自动化·佛山美诚科技有限公司
BullSmall2 小时前
Sonarqube9.9 docker 镜像启动后 conf 下的配置文件没有了
docker·容器·eureka
无足鸟ICT2 小时前
【RHCA+】查看变量
linux·运维·服务器
ruofu332 小时前
wsl端是py312,但是项目是py311, 如何下载py311的依赖包(wheels)
python·docker
Kina_C2 小时前
Linux DNS 服务器-从高速缓存到辅助 DNS 部署指南
linux·运维·服务器·dns
EasyGBS2 小时前
ONVIF设备接入国标GB28181视频平台EasyGBS:不用国标也能一键拉流!
服务器·php·音视频