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