- Al crear y desplegar una aplicación como imagen de Docker, usar una imagen base pesada puede hacer que una sola descarga tarde mucho tiempo o generar problemas de seguridad al incluir datos sensibles
- Cómo hacer que las imágenes de Docker sean más ligeras y seguras
- Reducir el tamaño de la imagen
- Cuanto más ligera sea una imagen de Docker, más rápido será el build y el despliegue de la aplicación
- Esto permite desplegar con más frecuencia y en mayor cantidad, aumentando la productividad de los desarrolladores
- Métodos
- Técnica de múltiples etapas: se crean varias etapas, se compila cada una por separado y luego se integran los resultados en la imagen más ligera posible
- Usar la menor cantidad posible de comandos
RUN: cada comando RUN crea una imagen individual. Para minimizar esto, se ejecuta la mayor cantidad posible de scripts en un solo comando RUN
- Eliminar código fuente innecesario con
.dockerignore
README.md o el código de pruebas no son necesarios al compilar la aplicación real
- Archivos
.env con información sensible como tokens de autenticación de API, archivos de clave privada .pem y el directorio .git con el historial de commits de Git no deben incluirse en la imagen de Docker
- Para evitar que estos archivos se incluyan en la imagen de Docker, se crea un archivo
.dockerignore
- Crear una imagen segura
- Si una imagen de Docker tiene privilegios de root, puede ser peligrosa en caso de ser comprometida
- Métodos
- Usar una versión exacta de la imagen: si no se especifica una versión, se traerá automáticamente la versión
latest, y el comportamiento en ejecución puede cambiar según la situación
- Quitar permisos de escritura en
/etc: /etc es el directorio que contiene archivos y scripts de configuración del sistema. Normalmente la aplicación no necesita modificarlo, por lo que conviene quitar esos permisos
- Eliminar todos los ejecutables: en Go, por ejemplo, se puede ejecutar con un solo binario, así que se eliminan todos los demás ejecutables que puedan representar un riesgo potencial
- Cambiar a un usuario normal: la cuenta root puede modificar y controlar todo el sistema. Se crea un usuario con los permisos mínimos necesarios para que la aplicación se ejecute solo con ese usuario
- Las imágenes ligeras de Docker muestran una gran sinergia cuando se combinan con pipelines de CI/CD y metodologías ágiles
- Con imágenes seguras de Docker se puede proteger el negocio y prevenir riesgos de antemano
Aún no hay comentarios.