Docker:为什么检查命令显示8层而不是7层

我有一个简单的docker文件来运行在阿尔卑斯山烧瓶Web框架。

FROM python:2.7-alpine RUN mkdir /app WORKDIR /app COPY requirements.txt requirements.txt RUN pip install -r requirements.txt COPY . . LABEL maintainer="Test Test <test@gmail.com>" \ version="1.0" CMD flask run --host=0.0.0.0 --port=5000 

并像下面一样构build了Docker镜像

docker工图像构build-t web1。

并能够看到中间容器正在创build和下降在每个层(WORKDIR /应用程序除外)。 但是当我检查使用

docker图像检查web1

我得到了8层而不是7层。第8层来自哪里?

仅在图像构build期间创build图层才能更改文件系统。 其他的一切都是存储在图像清单中的元数据。

基本图像python:2.7-alpine有4个文件系统层。

 docker inspect python:2.7-alpine --format '{{range .RootFS.Layers}} {{.}}{{end}}' sha256:2b0fb280b60dad0c3e2f6b207ef0d8f6a04f09638d245d3a2fdf0d6933e734d6 sha256:1d2140d2445eafe082403409b3fe53ec3d8c148dacd632857af3d00582aab358 sha256:17c290bb5b65c2d20fc06de87381281e3d47e73064bff2eb383691d8d15cc5e9 sha256:316e76fb784760855a473b2c655abecdcf94dbaef9ce3673645b40f8df24c8e1 

您的映像在基础映像的4之上创build了4个文件系统层(Dockerfile RUNCOPYRUNCOPY命令)

 docker inspect web1 --format '{{range .RootFS.Layers}} {{.}}{{end}}' sha256:2b0fb280b60dad0c3e2f6b207ef0d8f6a04f09638d245d3a2fdf0d6933e734d6 sha256:1d2140d2445eafe082403409b3fe53ec3d8c148dacd632857af3d00582aab358 sha256:17c290bb5b65c2d20fc06de87381281e3d47e73064bff2eb383691d8d15cc5e9 sha256:316e76fb784760855a473b2c655abecdcf94dbaef9ce3673645b40f8df24c8e1 sha256:... sha256:... sha256:... sha256:...