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

相关推荐
江华森7 小时前
Ansible 自动化运维:从入门到实战
运维·自动化·ansible
宋浮檀s10 小时前
应急响应——Web漏洞:命令执行+SSRF+弱口令
运维·数据库·sql·网络安全·oracle·应急响应
日取其半万世不竭10 小时前
iftop、nethogs 和 nload:Linux 服务器网络流量实时监控工具介绍
linux·运维·服务器
mounter62510 小时前
Linux 内核资源管理:控制组(cgroup)的演进与“策略组”新提案
linux·运维·服务器·cgroup·kernel
bksczm10 小时前
文件在磁盘中的存储方式
linux·运维·服务器
L16247610 小时前
OpenSSH 半自动升级方案(独立编译 + 手动迁移 + 重建 systemd 服务)
linux·服务器·ssh
半旧夜夏10 小时前
【保姆级】微服务组件环境搭建(Docker Compose版)
java·linux·spring cloud·微服务·云原生·容器
Wpa.wk10 小时前
win环境本地文件上传远程服务器(scp/远程连接工具)
运维·服务器
Soari11 小时前
SSH 主机密钥冲突
运维·网络·ssh
爱莉希雅&&&11 小时前
zabbix快速搭建和使用
android·linux·数据库·zabbix·监控