1. Evite containers privilegiados
Evite:
docker run --privileged ...
a menos que seja realmente necessário.
Esse modo fornece permissões muito amplas.
2. Evite executar aplicações como root
Dentro de uma imagem, sempre que possível, use um usuário sem privilégios.
Exemplo conceitual:
FROM alpine
RUN adduser -D appuser
USER appuser
CMD ["sh"]
3. Use imagens confiáveis
Prefira imagens oficiais ou imagens cujo mantenedor seja conhecido.
4. Fixe versões quando estabilidade for importante
Em vez de depender apenas de:
FROM nginx:latest
considere uma versão explicitamente testada pelo seu projeto.
5. Não coloque senhas no Dockerfile
Evite:
ENV PASSWORD=minha_senha
Imagens podem ser inspecionadas e compartilhadas.
6. Cuidado com o socket Docker
Este arquivo:
/var/run/docker.sock
dá acesso muito poderoso ao Docker daemon.
Montá-lo em containers deve ser feito somente quando necessário e entendendo o risco.
