轻松查看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版

相关推荐
yuren_xia10 分钟前
Vim 编辑器的常用快捷键介绍
linux·编辑器·vim
Chance Z16 分钟前
Ubuntu搭建Pytorch环境
linux·pytorch·ubuntu
m0_5211182318 分钟前
ubuntu 22.04配置cuda和cudnn
linux·ubuntu
傍晚冰川27 分钟前
【STM32】解读启动文件startup_stm32f10x_md.s
linux·笔记·stm32·单片机·学习
hhXx_琉璃1 小时前
如何启动spark
大数据·服务器·spark
LuckyRich11 小时前
【仿Mudou库one thread per loop式并发服务器实现】项目介绍+前置技术知识点
服务器·c++
宇泽希2 小时前
防火墙ip白名单配置
linux
ZZZCY20032 小时前
python自动登录远程设备的几种方式(华为设备)
运维·服务器·网络
被一米六支配的恐惧2 小时前
k8s部署grafana
容器·kubernetes·grafana
xiaoerbuyu12332 小时前
连不上阿里云服务器redis
服务器·redis·阿里云