Mam pojemnik z systemem GlassFish. Kiedy próbowałem zatwierdzić obraz, stał się 14 GB. Później usunąłem /tmp/
w pojemniku, który miał 10 GB i próbowałem zatwierdzić obraz, ale nadal obraz ma 14 GB. Wygląda na to, że usunięcie plików z kontenera nie ma odzwierciedlenia w rozmiarze obrazu. Jak rozwiązać ten problem?
12
glassfish
obraz Dockera ma około 1 GB. Choć obraz Dockera jest cholernie duży, wciąż jest znacznie mniejszy niż to, co wydajesz się budować.Odpowiedzi:
Problem, z którym możesz się spotkać, polega na tym, że usunięcie plików w zatwierdzeniu nie zmienia faktu, że plik był na poprzednim obrazie, więc poprzedni obraz nadal ma rozmiar 14G.
Zajrzyj do części „Warstwy” w tym artykule: http://woudenberg.io/reducing-docker-image-size/
Aby rozwiązać ten problem, musisz usunąć rzeczy z / tmp / w oryginalnym zatwierdzeniu, które je wygenerowało, aby obraz utworzony w wyniku tego zatwierdzenia ich nie zawiera. Jest to łatwe, gdy używasz plików docker, ale nie jestem pewien, czy jest to możliwe podczas tworzenia obrazów z zatwierdzeniami.
Inną rzeczą, którą możesz zrobić, jest zgniatanie warstw poprzez eksportowanie / importowanie obrazu.
źródło
Rozszerzając odpowiedź @Juan Antonio,
Dockerfile
zrobienie tego nie pozwoli zaoszczędzić miejsca:Zamiast tego musisz:
Z drugiej strony oznacza to mniej buforowania, jakby cokolwiek zmieniło się w tym dużym wierszu poleceń, Docker będzie musiał ponownie uruchomić cały zestaw poleceń.
źródło