Docker, operación bikini

O cómo reducir el peso de nuestros contenedores con unos sencillos pasos.

Hace cuestión de unos días, revisando unos desarrollos comprobé como algunas de las imágenes que había creado para mis contenedores eran demasiado pesadas, por lo que comencé a investigar cómo reducirlas. Para ello encontré cinco sencillos pasos pasos.

1. Parte de una buena base

Parte de la imagen más pequeña que puedas y que se adecue a tus necesidades. Invierte unos minutos en buscar y determinar de qué imagen base partir. Existen distribuciones como Alpine o las versiones Slim de Debian que merecen la pena ser estudiadas

2. Instala lo justo

Incluye sólo lo que necesites, evita instalar herramientas de desarrollo y utiliza opciones como –no-install-recommends de apt o –no-recommends de zypper para evitar la instalación de paquetes recomendados que probablemente no necesites

3. Menos es más

Reduce el número de capas, cada una de ellas requiere un peaje, que aunque no es demasiado alto, puede suponer una diferencia sustancial entre una imagen y otra. Veamos el siguiente ejemplo

FROM ubuntu:latest
RUN apt-get update
RUN apt-get install -y curl --no-install-recommends
RUN apt-get install -y wget --no-install-recommends
RUN apt-get install -y net-tools --no-install-recommends
RUN apt-get install -y inetutils-ping --no-install-recommends
RUN  rm -rf /var/lib/apt/lists/*

CMD ["echo", "Hello World!" ]
FROM ubuntu:latest
RUN apt-get update && \
apt-get install -y curl wget net-tools inetutils-ping \
--no-install-recommends && \
rm -rf /var/lib/apt/lists/*

CMD ["echo", "Hello World!" ]

Hay que reconocer que reducir el número de capas puede suponer un incordio a la hora de desarrollar, dado que dificulta en cierta medida la identificación de fallos y aumenta los tiempos a la hora de construir nuevas imágenes, dado que las capas será mayores.

4. Limpia

Elimina lo que ya no necesites, carpeta temporales, código fuente y ficheros intermedios de compilación, caché de herramientas como apt o apk, ficheros de log, historial de comandos, etc

5. fromlatest

Se trata de una herramienta muy útil que te ayudará a realizar un último repaso de tu fichero Dockerfile https://www.fromlatest.io/#/

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s