0Pricing
Docker & DevOps Fundamentals · Aula

Minimização do tamanho de imagens com bases Slim e Distroless

Reduza as imagens finais escolhendo imagens-base mínimas, removendo ferramentas de compilação e usando bases distroless ou scratch para downloads mais rápidos e uma superfície de ataque menor.

Minimização do tamanho de imagens com bases Slim e Distroless é uma aula grátis de Docker & DevOps Fundamentals no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Docker & DevOps Fundamentals, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Docker & DevOps Fundamentals inclui 4 aulas no total.

Por que o tamanho da imagem importa

Imagens menores são baixadas mais rapidamente, iniciam mais depressa, custam menos para armazenar e expõem menos pacotes aos invasores. Otimizar o tamanho traz benefícios tanto de desempenho quanto de segurança.

Escolhendo uma imagem base enxuta

As imagens padrão são convenientes, mas pesadas. Trocar node:20 (~1GB) por node:20-slim ou node:20-alpine pode reduzir centenas de megabytes instantaneamente.

FROM node:20-slim

Compensações do Alpine

O Alpine é pequeno, mas usa musl libc em vez de glibc, o que ocasionalmente causa problemas em binários nativos. Teste cuidadosamente; às vezes, -slim é a opção pequena mais segura.

FROM python:3.12-alpine

Combine camadas RUN

Cada RUN adiciona uma camada. Encadeie os comandos relacionados e faça a limpeza na mesma camada; caso contrário, os arquivos excluídos continuarão aumentando o tamanho da camada anterior.

RUN apt-get update \
 && apt-get install -y curl \
 && rm -rf /var/lib/apt/lists/*

Use .dockerignore

Um arquivo .dockerignore mantém arquivos desnecessários fora do contexto de compilação: node_modules, .git e registros. Menos contexto significa compilações mais rápidas e camadas menores.

# .dockerignore
.git
node_modules
*.log

Recapitulação de múltiplas etapas

Compile em uma etapa com todos os compiladores e, depois, use COPY --from para copiar apenas o artefato para uma etapa final limpa. A cadeia de ferramentas nunca é enviada.

FROM golang:1.22 AS build
WORKDIR /src
COPY . .
RUN go build -o app

FROM alpine:3.20
COPY --from=build /src/app /app

Conheça o Distroless

As imagens Distroless contêm apenas sua aplicação e o ambiente de execução — nenhum terminal, gerenciador de pacotes ou binário extra. São pequenas e difíceis de explorar.

FROM gcr.io/distroless/static-debian12
COPY --from=build /src/app /app
ENTRYPOINT ["/app"]

Sem terminal, sem problema

O Distroless não tem terminal, portanto os comandos RUN e docker exec sh não funcionarão. Faça toda a configuração nas etapas anteriores; use a tag :debug quando precisar inspecionar o interior.

A base scratch

Para binários totalmente estáticos (Go, Rust), FROM scratch envia apenas o executável — geralmente, alguns megabytes no total.

FROM scratch
COPY --from=build /src/app /app
ENTRYPOINT ["/app"]

Medindo seus ganhos

Use docker images para comparar tamanhos e docker history para ver quais camadas são maiores. Otimize primeiro as camadas mais volumosas.

docker history myapp:latest

Fixe versões, não latest

Fixar uma tag ou um resumo criptográfico específico torna as compilações reproduzíveis e evita aumentos inesperados de tamanho quando o latest da origem é alterado.

FROM node:20.11.1-slim

Verificação rápida

O que há de especial em uma imagem distroless?

Recapitulação

Agora você pode reduzir bastante o tamanho das imagens:

  • Escolha imagens base -slim, -alpine, distroless ou scratch
  • Encadeie e limpe as camadas RUN; use .dockerignore
  • As compilações em múltiplas etapas removem a cadeia de ferramentas
  • Meça com docker history e fixe as versões

Imagens menores significam implantações mais rápidas e seguras.

Perguntas Frequentes

A aula “Minimização do tamanho de imagens com bases Slim e Distroless” é grátis?

Sim — o texto completo de “Minimização do tamanho de imagens com bases Slim e Distroless” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Docker & DevOps Fundamentals, atualize para CoddyKit PRO. O curso de Docker & DevOps Fundamentals inclui 4 aulas no total.

O que vou aprender em “Minimização do tamanho de imagens com bases Slim e Distroless”?

Reduza as imagens finais escolhendo imagens-base mínimas, removendo ferramentas de compilação e usando bases distroless ou scratch para downloads mais rápidos e uma superfície de ataque menor. Você pratica Docker & DevOps Fundamentals com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Docker & DevOps Fundamentals?

Nenhuma experiência prévia é necessária. Docker & DevOps Fundamentals no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Minimização do tamanho de imagens com bases Slim e Distroless”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Docker & DevOps Fundamentals?

Sim. Cada aula de Docker & DevOps Fundamentals inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Criações em Vários Estágios para Maior Eficiência
  2. Aproveitando o Cache de Criação
  3. Boas Práticas de Segurança para Dockerfiles
  4. Minimização do tamanho de imagens com bases Slim e Distroless
← Voltar para Docker & DevOps Fundamentals