如何在本地主机上获取docker映像的层
刚开始在Ubuntu上玩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
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的结果中提取信息