Otimizar sempre a sua imagem

Otimizar o tamanho das imagens Docker é essencial para melhorar o desempenho e a eficiência dos seus contêineres. Aqui estão algumas dicas práticas para reduzir o tamanho das suas imagens:

  1. Use Imagens Baseadas em Alpine:

    • Se você não precisa de nenhuma especificidade de sistema, considere o uso de imagens baseadas em Alpine.

    • Comparando com uma imagem baseada na versão slim do Debian:

      • Alpine: 5,53 MB

      • Debian (stretch-slim): 55,3 MB

    • O Alpine é significativamente mais leve.

      • O Alpine Linux é uma distribuição Linux leve e minimalista projetada para executar contêineres Docker. Baseado no Alpine Linux, conhecido por sua eficiência e tamanho reduzido, o Docker Alpine possui uma pequena pegada, exigindo menos recursos para ser executado e oferecendo um melhor desempenho em ambientes com restrições de recursos. Essa abordagem minimalista e foco em segurança tornam o Alpine Linux atraente para usuários avançados e também para sistemas com recursos limitados, como o Raspberry Pi. Em resumo, o Alpine Linux segue a filosofia “pequeno, simples e seguro” e é amplamente utilizado em ambientes de containerização e virtualização.

  2. Evite Cache de Instalação:

  3. Multi-Stage Build:

    • Use o multi-stage build para criar imagens intermediárias.

    • Compile e construa o código em uma imagem intermediária e, em seguida, copie apenas os artefatos necessários para a imagem final.

Lembre-se de que imagens menores resultam em contêineres mais rápidos e eficientes.

Laboratório

Por exemplo, para otimizar o Dockerfile abaixo, ao invés de instalar o Node.js pode-se utilizar a image oficial node existente no Docker Registry que já possui a versão Linux Alpine:

Ficaria desta forma com a definição da versão da imagem base:

Imagem Base com Versão

Utilizar uma imagem base versionada no Docker é uma prática recomendada por várias razões importantes:

  1. Reprodutibilidade:

  2. Segurança:

  3. Estabilidade:

Em resumo, usar imagens base versionadas promove consistência, segurança e confiabilidade em seus projetos Docker.

O tamanho da imagem na tag v2 ficou maior que as demais. A imagem base node:20.17.0 utiliza a distribuição debian que não é a mais enxuta. Para otimizar ainda mais poder ser utilizada o Linux Alpine.

Procurar no Docker Hub uma versão Node.js Alpine:

Dockerfile:

Last updated