Cómo hacer imágenes de Docker más ligeras y seguras
(insight.infograb.net)- 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 comandoRUNcrea una imagen individual. Para minimizar esto, se ejecuta la mayor cantidad posible de scripts en un solo comandoRUN
- Eliminar código fuente innecesario con
.dockerignoreREADME.mdo el código de pruebas no son necesarios al compilar la aplicación real- Archivos
.envcon información sensible como tokens de autenticación de API, archivos de clave privada.pemy el directorio.gitcon 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:/etces 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
- Usar una versión exacta de la imagen: si no se especifica una versión, se traerá automáticamente la versión
- 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.