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

时间:2017-06-05 17:56:07

标签: linux docker

我目前正在研究Docker以供实验室使用。想象一下这就是我的情况:我创建了一个Docker镜像,然后用我的用户名(例如myname / lab1)将其推送到Docker Hub。后来,我的朋友拉了我的图像,然后对其进行了一些更改,然后用他的用户名(他/ lab1)将其推送到Docker Hub。 我的问题是,假设我能够提取基于原始图像构建的图像(他/ lab1),如何查找/列出我朋友对原始图像所做的所有更改?

非常感谢!

1 个答案:

答案 0 :(得分:3)

您可以使用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 commit,则更难以看到图层添加的更改。有关此问题的提案:https://github.com/moby/moby/issues/12641,截至2017年6月,仍为未决问题。