我不希望在运行none
时看到列出的许多docker images -a
图像,即使清理了所有悬空的图像也是如此。
因此,我想知道如何构建由多层构成的docker映像,但又不为每一层创建中间映像。
例如,我提取了一个图像elixir:1.6.6
,该图像有几层但没有中间图像。
$ docker history elixir:1.6.6
IMAGE CREATED CREATED BY SIZE COMMENT
6df952b1c358 5 days ago /bin/sh -c #(nop) CMD ["iex"] 0B
<missing> 5 days ago /bin/sh -c set -xe && ELIXIR_DOWNLOAD_URL="… 13.2MB
<missing> 5 days ago /bin/sh -c #(nop) ENV ELIXIR_VERSION=v1.6.6… 0B
<missing> 6 days ago /bin/sh -c set -xe && REBAR3_DOWNLOAD_URL="… 3.49MB
<missing> 6 days ago /bin/sh -c #(nop) ENV REBAR3_VERSION=3.6.1 0B
<missing> 6 days ago /bin/sh -c set -xe && REBAR_DOWNLOAD_URL="h… 209kB
<missing> 6 days ago /bin/sh -c #(nop) ENV REBAR_VERSION=2.6.4 0B
<missing> 6 days ago /bin/sh -c #(nop) CMD ["erl"] 0B
<missing> 6 days ago /bin/sh -c set -xe && OTP_DOWNLOAD_URL="htt… 237MB
<missing> 6 days ago /bin/sh -c #(nop) ENV OTP_VERSION=20.3.8.2 0B
<missing> 6 days ago /bin/sh -c set -ex; apt-get update; apt-ge… 556MB
<missing> 6 days ago /bin/sh -c apt-get update && apt-get install… 142MB
<missing> 6 days ago /bin/sh -c set -ex; if ! command -v gpg > /… 7.8MB
<missing> 6 days ago /bin/sh -c apt-get update && apt-get install… 23.2MB
<missing> 6 days ago /bin/sh -c #(nop) CMD ["bash"] 0B
<missing> 6 days ago /bin/sh -c #(nop) ADD file:370028dca6e8ca9ed… 101MB
如何构建图像,使其历史像elixir:1.6.6
示例一样?
谢谢
答案 0 :(得分:0)
不是,docker build
和docker images -a
就是这种互动方式。
除非您真的很感兴趣,否则建议不要运行docker images -a
。诸如docker rmi
之类的常规维护命令将删除所有未使用的中间层,并且您需要所有基本层来运行顶级映像。该命令并没有真正告诉您日常使用Docker的实际需要。