2017-10-05 3 views
0

J'ai construit une image il y a quelques semaines sans utiliser Dockerfile en utilisant ce tutorial.Réduire la taille de l'image docker sans Dockerfile

Fondamentalement, vous exécutez un conteneur à partir d'une image, modifier ce conteneur et puis enregistrez comme votre nouvelle image, sortie, engager et pousser. Au début, mon image était assez acceptable en taille, mais maintenant elle grandit de manière que je ne comprends pas.

Par exemple, si je dois modifier mon image, je:

  • docker run --name mycontainer -it from/currentimage bash
  • Modifier un fichier ou configurer quelque chose
  • sortie
  • docker commit from/currentimage
  • docker push from/currentimage

T Le problème est que la modification d'une ligne dans un fichier augmente l'image de ~ 250 Mo. Qu'est-ce que je fais mal?

De là, comment puis-je réduire la taille de ceux-ci, de ce que je pense, les couches inutiles? Les autres réponses sur SO utilisent toujours un Dockerfile ou le reconfigurent. Je n'en ai pas dans mon cas.

Merci

Répondre

1

Je ne peux pas vous dire pourquoi votre image croît plus vite que prévu. Vous pouvez utiliser le mécanisme d'import/export pour aplatir les couches mais, ce qui peut réduire la taille de l'image:

docker create --name foo from/currentimage 
docker export foo | docker import - from/currentimage:flat 
docker rm foo 

docker inspect from/currentimage:flat devrait afficher une seule couche.

+0

Il a coupé ~ 1Go qui est un bon début. Puis-je "fusionner" cela pour être le dernier? (Je l'ai juste essayé) Il semble que je dois les distinguer tous les deux. – Pobe

+0

Bien sûr, vous venez de marquer comme "from/currentimage: latest". Je ne voulais pas mettre cela dans la réponse, donc vous n'écrasez pas l'image existante par accident. – Peter