Cuando trabajas con contenedores debes de ser especialmente cuidadoso con las imágenes que eliges como base, como ayer que te conté conté cómo detectar vulnerabilidades con Snyk. Además deberías asegurarte de que las configuraciones que estás aplicando al generar tus Dockerfile son lo más seguras posible. Hoy quiero hablarte de otra herramienta en esta línea llamada Trivy.
Instalación
Lo primero que debes hacer para probar esta herramienta es instalarla. En este enlace tienes los pasos para diferentes sistemas operativos. En mi caso voy a hacer uso de Homebrew para instalar la herramienta en mi Mac:
brew install aquasecurity/trivy/trivyDetectar vulnerabilidades con Trivy
Al igual que Snyk, puedes escanear vulnerabilidades en las imágenes. Para ello puedes utilizar el mismo Dockerfile, y así comparar resultados:
FROM python:3.4-alpine
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt
EXPOSE 8000
CMD ["python", "app.py"]Lo primero que debemos hacer es generar la imagen:
docker build -t 0gis0/python-app .Y a partir de ahí ya podemos lanzar la herramienta de la siguiente manera:
trivy image 0gis0/python-appEl resultado sería el siguiente:

En este caso lo muestra en un formato tabla y no te hace recomendaciones de qué imágenes puedes usar, si la tuya no es la mejor opción.
Si cambio la imagen base a la última recomendada por Snyk:
FROM python:3.7.11-slim
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt
EXPOSE 8000
CMD ["python", "app.py"]Verás que las vulnerabilidades se reducen.
Buscar configuraciones no apropiadas en tu Dockerfile
La parte que más me ha molado de esta herramienta es la capacidad que tiene de buscar «malas configuraciones» en tus Dockerfile. Utilizando el mismo ejemplo que en el apartado anterior, si lanzamos el siguiente comando, en el directorio donde tienes tu Dockerfile:
trivy config .Obtendrás el siguiente resumen:

¡Saludos!
Si quieres seguir aprendiendo sobre contenedores, tienes una lista de vídeos en mi canal de YouTube 👇🏻
Docker CLI: Comandos esenciales que todo developer debe conocer
Domina los Dockerfiles: De lo básico a multi-stage
4 formas de crear un Dockerfile sin empezar desde cero
¿No entiendes las redes en Docker? Mira este vídeo
Cómo NO perder tus datos en Docker: Guía definitiva
Deja de configurar contenedores a mano: Aprende Docker Compose 🐙
Cómo subir tus imágenes a Docker Hub (Guía paso a paso)
Publica y automatiza tus imágenes de Docker con GitHub


¿Qué son los contenedores? Docker desde cero para principiantes
return(GiS); julio 10, 2024 10:00 am