Imágenes de Docker con Alpine Linux

Publicado por pico.dev el .
blog blog-stack planeta-codigo planeta-linux
Comentarios

Docker
Alpine Linux

En el repositorio de imágenes Docker Hub de Docker hay múltiples versiones de cada software contenirizado, alguna de las versiones están etiquetadas con la palabra alpine. Las imágenes de Docker etiquetadas con alpine hacen referencia a que usan como base la distribución Alpine Linux y la razón de usar Alpine Linux es que al ser una distribución minimalista basada en busybox y musl-libc hace que las imágenes ocupen bastante menos que una imagen equivalente por ejemplo basada en Ubuntu o Debian, seguramente porque no contienen una buena cantidad de cosas innecesarias.

Por ejemplo, la imagen de Docker que contiene en JDK de Java basada en Debian ocupa 643 MiB y la imagen de Java basada en Alpine Linux ocupa 101 MiB, una diferencia significativa de casi 500 MiB. Con la capacidad de los discos duros actuales no es tanto por lo que ocupan en disco sino por el tiempo que las imágenes tardan en descargarse desde el repositorio e iniciarse los contenedores como es el caso en un cluster de contenedores Docker.

Imágenes de Docker con su tamaño. Ver imágenes openjdk, Ubuntu y Alpine Linux.

El tiempo de descarga solo se emplea la primera vez que se hace uso de una imagen pero como las imágenes se van actualizando hay que tener en cuenta que en cada nueva versión que se use hay que descargar una nueva imagen, cuanto más pequeñas sean las imágenes menos tiempo se emplea en descargarlas y más rápidamente se iniciarán los contenedores.

La imagen base de Ubuntu con la que crear nuevas ocupa 117 MiB y la imagen base de Alpine Linux únicamente 3.98 MiB. Si creamos imágenes propias basadas en Alpine Linux deberemos saber que esta distribución usa su propio gestor de paquetes apk y su propio repositorio de paquetes. Para crear una imagen de Docker hay que usar los archivos Dockerfile que contienen las instrucciones para construir la imagen del contenedor.

Yo apoyo al software libre