Boas Práticas de Segurança para Dockerfiles
Implemente medidas de segurança nos seus Dockerfiles para minimizar vulnerabilidades e reduzir a superfície de ataque.
Boas Práticas de Segurança para Dockerfiles é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 3 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 DevOps Bootcamp, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de DevOps Bootcamp inclui 4 aulas no total.
Proteja os Seus Dockerfiles!
Boas-vindas às Práticas Recomendadas de Segurança para Dockerfiles! Uma aplicação segura começa com uma base segura.
O seu Dockerfile não é apenas um script de compilação; é um projeto para a segurança da sua aplicação. Práticas inadequadas aqui podem causar vulnerabilidades significativas.
Nesta lição, exploraremos estratégias importantes para reforçar a segurança das suas imagens do Docker e minimizar possíveis superfícies de ataque.

Comece com Imagens Base Confiáveis
A instrução FROM é a sua primeira linha de defesa. Escolha sempre imagens base oficiais e bem mantidas, provenientes de fontes confiáveis, como o Docker Hub.
- Imagens oficiais: São verificadas e atualizadas regularmente.
- Etiquetas específicas: Evite
latest. Use etiquetas de versão específicas (por exemplo,alpine:3.18) para obter previsibilidade e estabilidade. - Imagens mínimas: Prefira versões 'slim' ou 'alpine'. Elas contêm menos pacotes, o que significa menos vulnerabilidades potenciais.
Escolhendo uma Imagem Base Segura
Veja como selecionar uma imagem base mínima e específica pode melhorar a segurança. Isso reduz a quantidade de pacotes e ferramentas que poderiam ser explorados.
FROM alpine:3.18
# This is better than:
# FROM ubuntu:latest
# FROM python:latest
# Alpine is a minimal Linux distribution,
# making the image smaller and more secure.Minimize o Tamanho da Imagem
Cada arquivo, pacote ou dependência adicionada à sua imagem aumenta a sua 'superfície de ataque'. Quanto menos software estiver presente, menos vulnerabilidades potenciais existirão.
Instale apenas o que for absolutamente essencial para a execução da sua aplicação. Remova as ferramentas de compilação e os arquivos temporários quando eles não forem mais necessários.
Limpe Após a Instalação
Ao instalar pacotes, limpe sempre os caches do gerenciador de pacotes e remova os arquivos desnecessários. Isso reduz o tamanho final da imagem e remove possíveis vazamentos de informações.
Para imagens baseadas em Debian (como o Ubuntu), use apt-get clean e remova /var/lib/apt/lists/* na mesma instrução RUN.
FROM debian:stable-slim
RUN apt-get update && \
apt-get install -y --no-install-recommends \
curl \
git && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# All in one RUN command to leverage Docker's caching and reduce layers.Não Execute como Root!
Por padrão, os processos dentro de um contêiner do Docker são executados como o usuário root. Isso representa um grande risco de segurança!
Se um invasor obtiver o controle do seu contêiner, ele terá privilégios de root, o que poderá permitir que escape do contêiner ou comprometa o sistema anfitrião.
Crie sempre um usuário dedicado que não seja root e alterne para ele usando a instrução USER.
Configure um Usuário que Não Seja Root
Veja como criar um novo usuário e instruir o Docker a executar os comandos seguintes como esse usuário. Isso limita significativamente os danos potenciais caso o contêiner seja comprometido.
FROM alpine:3.18
# Create a non-root user and group
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
# Switch to the non-root user
USER appuser
CMD ["echo", "Hello from non-root user!"]Nenhum Segredo no Dockerfile!
Nunca insira diretamente informações confidenciais, como chaves de API, senhas de bancos de dados ou chaves privadas, no seu Dockerfile nem as inclua na sua imagem.
Esses segredos podem ser facilmente extraídos da imagem por qualquer pessoa que tenha acesso a ela, mesmo que sejam excluídos em uma camada posterior.
Em vez disso, use métodos seguros, como os Secrets do Docker, variáveis de ambiente (para dados não confidenciais) ou os Secrets do Kubernetes em tempo de execução.
Prefira COPY a ADD
As instruções COPY e ADD copiam arquivos para a sua imagem, mas, em geral, COPY é preferível por motivos de segurança e clareza.
COPY: Copia apenas arquivos ou diretórios locais. É simples e previsível.ADD: Também pode obter arquivos de URLs e extrair automaticamente arquivos compactados (tar, gzip). Essa funcionalidade adicional introduz possíveis riscos de segurança, como baixar conteúdo não confiável ou extrair arquivos maliciosos.
Prefira COPY, a menos que precise especificamente dos recursos avançados de ADD e compreenda os riscos.
Verificação de Segurança!
Qual das práticas a seguir para Dockerfiles é uma etapa essencial para reduzir a superfície de ataque e minimizar possíveis vulnerabilidades?
A Sua Jornada com Dockerfiles Seguros
Excelente trabalho! Aprendeu práticas essenciais de segurança para Dockerfiles, que formam a base da conteinerização segura:
- Comece com imagens base confiáveis e mínimas: Use imagens oficiais, específicas e enxutas.
- Minimize o tamanho da imagem: Instale apenas o necessário e limpe tudo após as instalações.
- Execute como um usuário que não seja root: Limite os privilégios para reduzir o impacto de possíveis violações.
- Evite segredos: Nunca insira dados confidenciais diretamente no seu Dockerfile.
- Prefira `COPY` a `ADD`: Opte pela instrução
COPY, mais previsível e segura.
Ao aplicar essas práticas, melhora significativamente a postura de segurança das suas aplicações conteinerizadas!
Perguntas Frequentes
A aula “Boas Práticas de Segurança para Dockerfiles” é grátis?
Sim — o texto completo de “Boas Práticas de Segurança para Dockerfiles” é 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 DevOps Bootcamp, atualize para CoddyKit PRO. O curso de DevOps Bootcamp inclui 4 aulas no total.
O que vou aprender em “Boas Práticas de Segurança para Dockerfiles”?
Implemente medidas de segurança nos seus Dockerfiles para minimizar vulnerabilidades e reduzir a superfície de ataque. Você pratica DevOps Bootcamp 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 DevOps Bootcamp?
Nenhuma experiência prévia é necessária. DevOps Bootcamp 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 3 de 4.
Quanto tempo leva a aula “Boas Práticas de Segurança para Dockerfiles”?
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 DevOps Bootcamp?
Sim. Cada aula de DevOps Bootcamp 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