Como reduzir o tamanho da imagem do Docker

10

Eu tenho o contêiner executando o GlassFish. Quando tentei enviar uma imagem, ela se tornou 14GB. Mais tarde, eu deletei /tmp/ no container que tinha 10GB e tentei enviar uma imagem, mas a imagem ainda é 14GB. Parece que a exclusão de arquivos do contêiner não é refletida no tamanho da imagem. Como corrijo esse problema?

    
por user1726453 17.03.2015 / 10:45

2 respostas

7

O problema que você pode estar enfrentando é que remover arquivos em um commit não altera o fato de que o arquivo estava lá em uma imagem anterior, de modo que a imagem anterior ainda é 14G.

Dê uma olhada na parte "Camadas" deste artigo: link

Para resolver esse problema, você precisa remover os itens em / tmp / dentro da confirmação original que os gerou, portanto, a imagem criada como resultado dessa consolidação não os inclui. Isso é fácil quando usar dockerfiles, mas não tenho certeza se possível ao criar imagens com commits.

Outra coisa que você pode fazer é compactar camadas exportando / importando a imagem.

    
por 30.04.2015 / 17:22
3

Estendendo a resposta do @Juan Antonio, ter um Dockerfile fazendo isso não economizará espaço:

RUN apt-get install -y foo bar
...
RUN apt-get purge --auto-remove -y foo bar

O que você precisa fazer é:

RUN apt-get install -y foo bar && \
    && ... \
    && apt-get purge --auto-remove -y foo bar

No lado negativo, isso significa menos armazenamento em cache, como se algo fosse alterado nessa linha de comando grande, o Docker terá que executar novamente todo o conjunto de comandos.

    
por 09.09.2015 / 16:07

Tags