如何在本地主机上获取docker映像的层

如何在本地主机上获取docker映像的层,docker,Docker,刚开始在Ubuntu上玩docker。我拉了一个码头工人的形象如下 docker pull coreos/apache 现在我看到有三层被拉 Using default tag: latest latest: Pulling from coreos/apache a3ed95caeb02: Pull complete 5e160ca0bb5a: Pull complete 1f92e2761bfd: Pull complete Digest: sha256:9af520cee7bedcd

刚开始在Ubuntu上玩docker。我拉了一个码头工人的形象如下

docker pull coreos/apache
现在我看到有三层被拉

Using default tag: latest
latest: Pulling from coreos/apache
a3ed95caeb02: Pull complete 
5e160ca0bb5a: Pull complete 
1f92e2761bfd: Pull complete 
Digest: sha256:9af520cee7bedcda564970ff790cdf2e72b6daccce8539f6b3c880ed7fc21091
Status: Downloaded newer image for coreos/apache:latest
从上面,我看到这个图像有三层

但是现在,让我们假设我关闭并重新打开终端,我如何才能得到这个图像的层(上面的信息相同)。命令是什么

当我做docker图像时,我得到了这个

REPOSITORY          TAG                 IMAGE ID           CREATED             SIZE
centos              latest              0584b3d2cf6d        9 days ago          196.5 MB
hello-world         latest              c54a2cc56cbb        4 months ago        1.848 kB
coreos/apache       latest              5a3024d885c8        2 years ago         294.4 MB
既然我知道了图像id,那么如何获得该图像id的图层呢。 树选项,如中所示

docker images --tree 

已经不工作了。它似乎被移除了。如果没有一个命令,我如何至少使用一系列命令获得该命令。

现在映像已下载到本地主机(分层),即使您关闭终端并重新登录,映像仍将存在于主机上。它是分层下载的,但作为图像驻留在本地主机上,您现在可以使用“docker run”将其实例化到容器中

如果您想再次下拉图像并看到所有层被拖动,可以首先擦除图像(docker rmi),然后再次执行“docker pull coreos/apache”。嗯

编辑:要显示进入图像的实际图层,请运行:

docker history <imageid>
docker历史记录

如果您有
busybox
,下面是我如何获得它的方法

docker-inspect-busybox
-将以
json
格式显示长配置,下面是从中摘录以获取图层

"RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:e88b3f82283bc59d5e0df427c824e9f95557e661fcb0ea15fb0fb6f97760f9d9"
            ]
        }
您可以使用
docker inspect
--format
选项通过下面的命令对其进行简单筛选,该选项将给出OP所要查找的内容

rao @ ubuntu $ docker inspect --format '{{.RootFS.Layers}}' busybox
[sha256:e88b3f82283bc59d5e0df427c824e9f95557e661fcb0ea15fb0fb6f97760f9d9]

我明白这一点,但我想知道的是图像由哪些层组成。如何获取这些信息?@VivekDev为此,您可以使用“docker历史记录”,如下所述:docker inspect coreos/apache比历史记录更好,似乎提供了更好的信息。@VivekDev绝对,“docker inspect”提供了很多细节,但对于docker新手来说,它不像您所说的那样容易阅读。它也不像“docker history”那样显示每一层的大小。不过,使用这两种方法肯定能让我们更深入地了解正在发生的事情。享受docker——如此有用的技术@melgart,刚刚添加了如何从docker inspect的结果中提取信息