执行docker history <image_name>
时,它将显示docker映像构建的完整历史记录。有没有办法删除此历史记录?
我尝试过docker build --square ...
,但是没有用。历史依然存在。
答案 0 :(得分:2)
您可以使用多阶段构建。这是一个雄猫图像的示例:
docker pull tomcat:7-jre8
docker history tomcat:7-jre8
这将显示图像的完整历史记录。
我现在创建这样的Dockerfile:
FROM tomcat:7-jre8 as orig
FROM alpine:latest
COPY --from=orig / /
我构建它:
docker build -t mytomcat:1.0 .
如果我查看历史记录,这就是我现在看到的内容:
docker history mytomcat:1.0
IMAGE CREATED CREATED BY SIZE COMMENT
c3cde992658a 6 minutes ago /bin/sh -c #(nop) COPY dir:f31f2e5f414562467… 454MB
5cb3aa00f899 6 weeks ago /bin/sh -c #(nop) CMD ["/bin/sh"] 0B
<missing> 6 weeks ago /bin/sh -c #(nop) ADD file:88875982b0512a9d0… 5.53MB
测试新图像:
docker run -ti --rm mytomcat:1.0 bash
root@62d8c9934bd4:/# /usr/local/tomcat/bin/startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
root@62d8c9934bd4:/# curl http://localhost:8080
...
希望这就是您想要的。如果没有,请告诉我。
答案 1 :(得分:1)
我无法在某处对此进行测试,但是可以先对图像进行docker export
,然后对docker import
进行图像处理吗?我相信,这会将所有图像“拉平”到容器文件系统中,一路删除历史记录。 This博客文章似乎支持这一想法。