web-dev-qa-db-fra.com

Comment fonctionne le nouveau Docker --squash

Dans Docker 1.13 le nouveau paramètre - squash a été ajouté.

J'espère maintenant réduire la taille de mes images et pouvoir "masquer" les fichiers secrets que j'ai dans mes calques.

Ci-dessous, vous pouvez maintenant voir la différence par rapport à la construction avec et sans le paramètre --squash.

sans squash

enter image description here

avec squash

enter image description here

Passons maintenant à ma question.

Si j’ajoute un fichier secret dans ma première couche , utilisez le fichier secret dans ma seconde et enfin supprimer mon fichier secret dans le troisième couche , puis construire avec le drapeau --squash.

Y aura-t-il un moyen quelconque d'obtenir maintenant le fichier secret?

46
Fore

Si j'ajoute un fichier secret dans ma première couche, utilisez le fichier secret dans ma deuxième couche, puis supprimez mon fichier secret dans la troisième couche, puis générez avec l'indicateur --squash.

Y aura-t-il un moyen maintenant d'obtenir le fichier secret?

Réponse: Votre image n'aura pas le fichier secret.

Comment --squash travaux:

Une fois la construction terminée, Docker crée une nouvelle image en chargeant les diffs de chaque calque dans un nouveau calque et en référençant tous les calques du parent.

En d'autres termes: lorsque vous écrasez, Docker prend toutes les couches du système de fichiers générées par une construction et les réduit en une seule nouvelle couche.

Cela peut simplifier le processus de création d'images de conteneur minimales, mais peut entraîner une surcharge légèrement plus importante lorsque les images sont déplacées (car les calques masqués ne peuvent plus être partagés entre les images). Docker met toujours en cache des couches individuelles pour accélérer la construction ultérieure.

Veuillez noter que cette fonctionnalité écrase toutes les couches nouvellement construites en une seule couche, elle ne s'efface pas.

Notes annexes

Docker 1.13 prend également en charge la compression du contexte de construction envoyé de la CLI au démon à l'aide de la commande --compress drapeau. Cela accélérera les générations effectuées sur les démons distants en réduisant la quantité de données envoyées.

Veuillez noter qu'à partir de Docker 1.13, cette fonctionnalité est expérimentale.

61
Farhad Farahi