【发布时间】:2020-05-19 21:16:33
【问题描述】:
我目前对 Docker 镜像的理解是它是单个层的集合。每个层只包含通过联合文件系统合并的增量(它只是将所有层安装在彼此之上)。实例化图像时,将另一个(可写)层放在顶部,然后将包含所有容器特定的更改,这些更改在重新启动之间保持不变。以上如有错误请指正。
我想检查各个层的内容。我对检查最顶层特别感兴趣,以查看我的容器化应用程序是否写入了任何会使容器膨胀的数据,例如日志等。我正在使用 macOS,它不会将所有文件存储在 /var/lib/docker/ 中,但似乎将它们存储在 VM 中。我读到了docker-machine 工具,这些工具可以很容易地通过 SSH 连接到 Docker 引擎,在那里人们可以查看和挂载所有层。但是,此工具似乎已停产。
有人知道 1)如何连接到 docker 引擎以访问层和 2)如何找出特定层中包含哪些文件?
edit: 好像可以使用docker diff查看原图和运行容器的文件差异,这也是我主要想要实现的,但是原来的问题依然存在.
【问题讨论】:
-
这是一个好的开始,我在各种命令中看到了文件夹
/var/lib/docker/overlay2/..(如在docker inspect ...中),但这个文件夹在我的主机FS 中不存在。显然,macOS 为 Docker 运行了一个 VM(其中存在此路径)。如何连接到此 VM? -
这可能取决于操作系统版本,但这涉及到它:stackoverflow.com/questions/39739560/…
标签: docker