2017-10-19 12 views
0

J'ai un simple fichier docker pour exécuter la structure web flask en alpin.Docker: Pourquoi inspecter les commandes montre 8 couches au lieu de 7 couches

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 <[email protected]>" \ 
    version="1.0" 

CMD flask run --host=0.0.0.0 --port=5000 

et construit l'image docker comme ci-dessous

image docker construire -t web1.

et a pu voir les conteneurs intermédiaires créés et déposés dans chaque couche (sauf pour WORKDIR/app). Mais quand je l'inspecter en utilisant

docker l'image inspecter web1

je suis arrivé 8 couches au lieu de 7. Où se trouve la couche 8 vient?

Répondre

1

Les calques sont créés uniquement pour les modifications du système de fichiers lors de la génération d'une image. Tout le reste est des métadonnées stockées dans le image manifest.

L'image de base python:2.7-alpine comporte 4 couches de système de fichiers.

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

Votre image crée 4 couches de système de fichiers (Dockerfile RUN, COPY, RUN, COPY commandes) au-dessus de la 4 à partir de l'image de base

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

Thx pour une explication détaillée – jprism