如何列出在一个拉动的Docker镜像上执行的所有命令?

我正在研究Docker的实验室使用。 想象一下,这是我的情况:我创build了一个Docker镜像,然后用我的用户名(例如myname / lab1)将其推送到Docker Hub。 后来,我的朋友拉我的形象,然后对其进行一些更改,然后用他的用户名(他/ lab1)推送到Docker Hub。 我的问题是,假设我能够把他的形象(他/ lab1),这是build立在我原来的形象,我怎么能find/列出我的朋友对我原来的形象所做的所有变化?

非常感谢!

您可以使用docker history <image_name/id>

 ▶ docker history ubuntu IMAGE CREATED CREATED BY SIZE COMMENT f7b3f317ec73 5 weeks ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0 B <missing> 5 weeks ago /bin/sh -c mkdir -p /run/systemd && echo '... 7 B <missing> 5 weeks ago /bin/sh -c sed -i 's/^#\s*\(deb.*universe\... 2.76 kB <missing> 5 weeks ago /bin/sh -c rm -rf /var/lib/apt/lists/* 0 B <missing> 5 weeks ago /bin/sh -c set -xe && echo '#!/bin/sh' >... 745 B <missing> 5 weeks ago /bin/sh -c #(nop) ADD file:141408db9037263... 117 MB 

添加--no-trunc为了看到完整的命令(CREATED BY列)。

但是,恕我直言,与您的朋友一起工作的理想方式应该是维护一个版本化的Dockerfile,看看那里的变化。


如果不使用Dockerfile跟踪更改,而是使用docker docker commit ,则更难以看到图层添加的更改。 有一个关于这个的build议: https : //github.com/moby/moby/issues/12641 ,截至2017年6月,这仍然是一个未决的问题。