Docker · 7 min read · Nov 24, 2025

Docker Parte 4: construcción y publicación de imágenes docker personalizadas

En la primera y segunda parte, cubrimos los fundamentos de ejecutar un contenedor preparando nuestro sistema para gestionar contenedores docker y lo que significa exactamente usar un contenedor docker frente a otras tecnologías de virtualización desde una perspectiva técnica. Luego, en la tercera parte, nos pusimos manos a la obra con las imágenes docker, aprendimos lo básico y creamos nuestro primer contenedor Notepad usando WordPress o DokuWiki.

En esta cuarta parte, vamos a ver cómo se construyen las imágenes docker y crearemos nuestra propia imagen personalizada lista para ser descargada y compartida con nuestros amigos, colegas y comunidades.

Para este tutorial, utilizaremos la imagen Whale Docker. La Ballena es la mascota oficial de Docker y la imagen docker Whale se asemeja al programa cowsay que genera imágenes ASCII de una vaca en la terminal con un mensaje. También puede generar imágenes utilizando imágenes pre-hechas de otros animales, como Tux el Pingüino y la mascota de Linux.

Introducción a los Archivos Docker

En la parte anterior, nos presentamos al Docker Hub y aprendimos que es un recurso centralizado basado en la nube para el descubrimiento de imágenes de contenedores, la construcción de imágenes y la distribución de esas imágenes. También aprendimos que una imagen docker es una imagen de múltiples capas sobre una imagen base. Dicho esto, usar una imagen base elimina la molestia de crear desde cero un sistema operativo adecuado para la imagen docker y nos da la opción de personalizar las capas superiores donde residirá nuestro software.

Para crear una imagen personalizada utilizando una imagen base, necesitamos proporcionar al motor docker instrucciones sobre cómo instalar y configurar paquetes y archivos, así como algunas configuraciones que lo acompañan. Estas instrucciones se escriben en un archivo de texto plano llamado “dockerfile”. Los Dockerfiles son como recetas que le entregas a un chef y él/ella te cocina una gran comida. Estos archivos docker se escriben utilizando un conjunto simple y descriptivo de pasos que se llaman “instrucciones”. Cada instrucción crea una nueva capa en nuestra imagen. Las instrucciones incluyen acciones como ejecutar un comando, agregar un archivo o directorio, qué proceso ejecutar al lanzar un contenedor desde la imagen, etc. Este proceso es similar a cómo establecerías una serie de comandos en un script de shell. Una vez que solicitas la construcción de una imagen, Docker lee el dockerfile, ejecuta las instrucciones y devuelve una imagen final.

Construyendo una Imagen Docker

Hay dos formas de construir tu imagen Docker personalizada. Puedes construirla en tu computadora o puedes usar el Docker Hub del que hablamos anteriormente. En esta parte, aprenderemos cómo construir nuestra imagen Docker localmente y luego publicarla en el Registro de Docker Hub.

Construyendo Localmente usando un Dockerfile

Crearemos una Imagen Docker personalizada usando la imagen “Whale say” que es una pequeña Imagen Docker (basada en una Imagen de Ubuntu) que cuando la ejecutas, dice algo que programaste para que te dijera.

Primero, abre una terminal y crea una nueva carpeta escribiendo:

mkdir mywhale

Este directorio sirve como el “contexto” para tu construcción. El contexto simplemente significa que contiene todas las cosas que necesitas para construir tu imagen con éxito.

Entra en tu nueva carpeta con:

cd mywhale

y crea un Dockerfile en la carpeta escribiendo:

touch Dockerfile

Ahora deberías ver el Dockerfile vacío que creamos si das el comando ‘ll’:

ll
$ ll  
total 8.0K  
-rw-rw-r-- 1 user user 0 23:26 Dockerfile

Ábrelo con tu editor de texto favorito y agrega:

FROM docker/whalesay:latest

Esta primera línea de instrucción, con la palabra clave FROM, le dice a Docker sobre qué imagen se basa tu imagen. Estás basando tu nuevo trabajo en la imagen whalesay existente.

La siguiente instrucción que agregaremos le dará a nuestra ballena la capacidad de decir una fortuna. Para lograr esta tarea, utilizaremos el paquete fortune que está disponible en los repositorios de Ubuntu (recuerda que la imagen de la ballena se basa en una imagen de Ubuntu). El programa fortunes tiene un comando que imprime dichos sabios para que nuestra ballena los diga.

Entonces, el primer paso es instalarlo. Para hacer esto, agregamos la instrucción habitual de apt install:

RUN apt -y update && apt -y install fortunes

Una vez que la imagen tiene el software que necesita, le indicas al software que se ejecute cuando se cargue la imagen. Para hacer esto, agregamos la siguiente instrucción:

CMD /usr/games/fortune -a | cowsay

La línea anterior le dice al programa fortune que envíe una cita elegida al azar al programa cowsay.

¡Y hemos terminado! Ahora guarda el archivo y sal.
Puedes verificar lo que hiciste ejecutando “cat Dockerfile” para que tu Dockerfile se vea así:

cat Dockerfile
FROM docker/whalesay:latest  
RUN apt-get -y update && apt-get install -y fortunes  
CMD /usr/games/fortune -a | cowsay

Ahora que todo (con suerte) se ve bien, es hora de construir nuestra Imagen Docker (no olvides el punto . al final del comando).:

docker build -t my-docker-whale .

El comando anterior toma el Dockerfile en la carpeta actual y construye una imagen llamada “my-docker-whale” en tu máquina local.

Puedes verificar que tu imagen Docker está efectivamente almacenada en tu computadora con:

docker images

Luego puedes ejecutar tu imagen Docker escribiendo lo siguiente:

docker run my-docker-whale

Una vez que se ejecute, obtendrás algo como la siguiente imagen

La imagen Docker Whale

Publicando tu Imagen Docker Personalizada en Docker Hub

Tu siguiente opción es publicar la imagen Docker creada en el Repositorio de Docker Hub. Para hacerlo, necesitarás crear una cuenta en la página de registro de Docker Hub donde proporcionarás un nombre, contraseña y dirección de correo electrónico para tu cuenta. También debo señalar que el servicio Docker Hub es gratuito para imágenes docker públicas. Una vez que hayas creado tu cuenta, puedes subir la imagen que has creado previamente, para hacerla disponible para que otros la usen.

Para hacerlo, necesitarás el ID y la ETIQUETA de tu imagen “my-docker-whale”.

Ejecuta nuevamente el comando “docker images” y anota el ID y la ETIQUETA de tu imagen Docker, por ejemplo, a69f3f5e1a31.

Ahora, con el siguiente comando, prepararemos nuestra Imagen Docker para su viaje al mundo exterior (la parte del nombre de la cuenta del comando es tu nombre de cuenta en la página de perfil de Docker Hub):

docker tag a69f3f5e1a31 accountname/my-docker-whale:latest

Ejecuta el comando “docker images” y verifica tu imagen recién etiquetada.

A continuación, usa el comando “docker login” para iniciar sesión en Docker Hub desde la línea de comandos.

El formato para el comando de inicio de sesión es:

docker login --username=yourhubusername [email protected]

Cuando se te pida, ingresa tu contraseña y presiona enter.

Ahora puedes subir tu imagen al repositorio recién creado:

docker push accountname/my-docker-whale

El comando anterior puede tardar un tiempo en completarse dependiendo del ancho de banda de carga de tu conexión, ya que sube algo así como 180MB de datos (en nuestro ejemplo). Una vez que haya terminado, puedes ir a tu perfil en Docker Hub y revisar tu nueva imagen.

Descargando tu Imagen Personalizada

Si deseas extraer tu imagen de tu repositorio de Docker Hub, primero deberás eliminar la imagen original de tu máquina local porque Docker se negaría a extraer del hub ya que las imágenes locales y remotas son idénticas.

Como recordarás de la parte anterior, para eliminar una imagen docker, debes ejecutar el comando “docker rmi”. Puedes usar un ID o el nombre para eliminar una imagen:

docker rmi -f a69f3f5e1a31

Ahora que la imagen está eliminada, puedes extraer y cargar la imagen de tu repositorio usando el comando “docker run” incluyendo tu nombre de cuenta de Docker Hub.

docker run accountname/my-docker-whale

Dado que previamente eliminamos la imagen y ya no estaba disponible en nuestro sistema local, Docker la descargará y la almacenará en la ubicación designada.

Resumen

En esta parte, aprendimos cómo crear un archivo Docker, escribir algunas instrucciones básicas y construir una imagen usándolo como receta. También cubrimos lo básico de subir nuestra nueva imagen personalizada al registro de Docker Hub y extraerla a nuestra máquina local. En la próxima parte de esta serie de tutoriales de Docker, mostraré cómo podemos automatizar el procedimiento de construcción de imágenes para que podamos crear imágenes personalizadas al instante cada vez que las necesitemos. ¡Estén atentos!

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.