J'ai un conteneur exécutant GlassFish. Lorsque j'ai essayé de valider une image, elle est devenue 14 Go. Plus tard, j'ai supprimé /tmp/
le conteneur de 10 Go et j'ai essayé de valider une image, mais l'image est toujours de 14 Go. Il semble que la suppression de fichiers du conteneur ne se reflète pas dans la taille de l'image. Comment résoudre ce problème?
12
glassfish
image Docker officielle fait environ 1 Go. Bien que sacrément grand pour une image Docker, il est toujours beaucoup plus petit que ce que vous semblez construire.Réponses:
Le problème auquel vous pourriez être confronté est que la suppression de fichiers dans une validation ne change pas le fait que le fichier était là dans une image précédente, de sorte que l'image précédente est toujours 14G.
Jetez un œil à la partie "Couches" de cet article: http://woudenberg.io/reducing-docker-image-size/
Pour résoudre ce problème, vous devez supprimer les éléments situés sous / tmp / dans le commit d'origine qui les a générés, afin que l'image créée à la suite de ce commit ne les inclue pas. C'est facile lorsque vous utilisez des dockerfiles mais pas sûr si possible lors de la création d'images avec des validations.
Une autre chose que vous pourriez faire est de réduire les calques en exportant / important l'image.
la source
S'étendant sur la réponse de @Juan Antonio,
Dockerfile
faire cela ne fera pas économiser de l'espace:Ce que vous devez faire à la place est:
En revanche, cela signifie moins de mise en cache, comme si quelque chose change dans cette grande ligne de commande, Docker devra réexécuter l'ensemble des commandes.
la source