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-slimCompensaçõ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-alpineCombine 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
*.logRecapitulaçã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 /appConheç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:latestFixe 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-slimVerificaçã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 ouscratch - Encadeie e limpe as camadas
RUN; use.dockerignore - As compilações em múltiplas etapas removem a cadeia de ferramentas
- Meça com
docker historye 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
- Criações em Vários Estágios para Maior Eficiência
- Aproveitando o Cache de Criação
- Boas Práticas de Segurança para Dockerfiles
- Minimização do tamanho de imagens com bases Slim e Distroless