如何删除docker镜像的所有构建历史?

eth*_*jyx 5 docker

执行此操作后docker history <image_name>,它将显示 docker 映像构建的完整历史记录。有没有办法删除这个历史记录?

我试过了,docker build --square ...但没有用。历史还在继续。

Mih*_*hai 7

您可以使用多阶段构建。这是一个 tomcat 图像的示例:

docker pull tomcat:7-jre8
docker history tomcat:7-jre8
Run Code Online (Sandbox Code Playgroud)

这会向您显示图像的完整历史记录。

我现在创建一个这样的 Dockerfile:

FROM tomcat:7-jre8 as orig

FROM alpine:latest

COPY --from=orig / /
Run Code Online (Sandbox Code Playgroud)

我构建它:

docker build -t mytomcat:1.0 .
Run Code Online (Sandbox Code Playgroud)

如果我查看历史记录,这就是我现在看到的:

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
Run Code Online (Sandbox Code Playgroud)

测试新镜像:

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
...
Run Code Online (Sandbox Code Playgroud)

希望这是你正在寻找的。如果不让我知道。