【问题标题】:How to inspect contents of different Docker image layers?如何检查不同 Docker 镜像层的内容?
【发布时间】: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


【解决方案1】:

您可以使用docker history 命令列出图层及其大小。但要检查所有层的内容,我建议使用dive tool

【讨论】:

  • 谢谢 从来没有听说过那个潜水工具,它正是我想要的。
猜你喜欢
  • 2017-11-29
  • 2015-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-28
  • 1970-01-01
相关资源
最近更新 更多