Introducción
Docker ha revolucionado la forma en que desarrollamos, implementamos y gestionamos aplicaciones. En el corazón de este ecosistema se encuentran las imágenes de Docker, que sirven como los bloques de construcción para crear y ejecutar aplicaciones en contenedores. En este tutorial, le guiaremos a través del proceso de extracción (pulling) de imágenes de Docker desde un registro (registry), un paso crucial para aprovechar el poder de Docker en sus proyectos.
Al final de este laboratorio, podrá buscar imágenes de Docker, extraerlas (pull) de Docker Hub y comprender cómo usarlas en sus aplicaciones en contenedores.
Entendiendo las Imágenes de Docker
Antes de comenzar a extraer (pulling) imágenes de Docker, es importante entender qué son las imágenes de Docker y cómo funcionan.
¿Qué es una Imagen de Docker?
Una imagen de Docker es un paquete ligero e independiente que contiene todo lo necesario para ejecutar una aplicación:
- Código de la aplicación
- Entorno de ejecución
- Bibliotecas y dependencias
- Variables de entorno
- Archivos de configuración
Las imágenes son las plantillas utilizadas para crear contenedores de Docker, que son las instancias en ejecución de estas imágenes.
Repositorios de Imágenes de Docker
Las imágenes de Docker se almacenan en repositorios dentro de los registros (registries). El registro público más popular es Docker Hub, que alberga miles de imágenes listas para usar. Algunos puntos clave sobre Docker Hub:
- Contiene imágenes oficiales mantenidas por los proveedores de software
- Aloja imágenes contribuidas por la comunidad, creadas por usuarios
- Permite a las organizaciones tener repositorios privados para imágenes propietarias
Nomenclatura de las Imágenes de Docker
Las imágenes de Docker siguen una convención de nomenclatura específica:
[registry/]username/repository:tag
Donde:
registryes el nombre de host del registro (opcional, por defecto es Docker Hub)usernamees el nombre de usuario o nombre de la organización en Docker Hubrepositoryes el nombre de la imagentages la versión de la imagen (opcional, por defecto es "latest")
Por ejemplo: ubuntu:22.04 o nginx:latest
Verificando la Instalación de Docker
Antes de continuar, asegurémonos de que Docker esté correctamente instalado en su sistema. Abra una terminal y ejecute:
docker --version
Debería ver una salida similar a:
Docker version 20.10.21, build baeda1f
Esto confirma que Docker está instalado y listo para usar.
En el siguiente paso, buscaremos y extraeremos (pull) nuestra primera imagen de Docker.
Buscando y Extrayendo (Pulling) su Primera Imagen de Docker
Ahora que entendemos qué son las imágenes de Docker, aprendamos a encontrarlas y extraerlas (pull) desde Docker Hub.
Buscando Imágenes de Docker
Antes de extraer (pull) una imagen, es posible que desee buscar las opciones disponibles. Use el comando docker search para encontrar imágenes en Docker Hub:
docker search ubuntu
Esto le mostrará una lista de imágenes relacionadas con Ubuntu disponibles en Docker Hub. Debería ver una salida similar a:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
ubuntu Ubuntu is a Debian-based Linux operating s... 14938 [OK]
ubuntu-upstart Upstart is an event-based replacement for ... 111 [OK]
rastasheep/ubuntu-sshd Dockerized SSH service, built on top of of... 256 [OK]
...
La columna OFFICIAL marcada con [OK] indica imágenes mantenidas por Docker o el proveedor de software.
Extrayendo (Pulling) una Imagen de Docker
Para descargar una imagen de Docker a su máquina local, use el comando docker pull seguido del nombre de la imagen:
docker pull ubuntu:22.04
Este comando extrae (pull) la imagen de Ubuntu 22.04 desde Docker Hub. Debería ver un progreso de descarga similar a:
22.04: Pulling from library/ubuntu
2ab09b027e7f: Pull complete
Digest: sha256:2b7412e6465c3c7fc5bb21d3e6f1917c167358449fecac8176c6e496e5c1f05f
Status: Downloaded newer image for ubuntu:22.04
docker.io/library/ubuntu:22.04
La salida muestra que Docker está descargando capas individuales de la imagen. Cada capa representa un conjunto de cambios en el sistema de archivos.
Extrayendo (Pulling) Imágenes sin una Etiqueta (Tag)
Si no especifica una etiqueta (tag), Docker extraerá (pull) la imagen etiquetada como latest:
docker pull nginx
Esto extraerá (pull) la última versión de la imagen del servidor web Nginx:
Using default tag: latest
latest: Pulling from library/nginx
a603fa5e3b41: Pull complete
(...more layers...)
Digest: sha256:f9c305f882a7062db720e582ce619686cbe29742eea6e1db6dcf84b200eec560
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
Extrayendo (Pulling) desde Otros Registros (Registries)
Por defecto, docker pull descarga imágenes desde Docker Hub. Para extraer (pull) desde otros registros (registries), incluya el nombre de host del registro:
docker pull mcr.microsoft.com/dotnet/sdk:6.0
Este comando extrae (pull) la imagen de .NET SDK 6.0 desde Microsoft Container Registry.
Ahora que ha extraído (pulled) algunas imágenes de Docker, pasemos al siguiente paso para aprender a gestionarlas.
Gestionando Imágenes de Docker
Después de extraer (pulling) imágenes de Docker, necesita saber cómo listarlas, inspeccionarlas y gestionarlas eficazmente.
Listando Imágenes de Docker
Para ver todas las imágenes de Docker que ha descargado a su máquina local, use el comando docker images (o su alias docker image ls):
docker images
Debería ver una salida similar a:
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 22.04 58db3edaf2be 3 weeks ago 77.8MB
nginx latest 605c77e624dd 4 weeks ago 142MB
Esta salida muestra:
REPOSITORY: El nombre de la imagenTAG: La versión de la imagenIMAGE ID: Un identificador único para la imagenCREATED: Cuándo se creó la imagenSIZE: El tamaño de la imagen en disco
Inspeccionando Imágenes de Docker
Para obtener información detallada sobre una imagen específica, use el comando docker inspect:
docker inspect ubuntu:22.04
Este comando muestra un array JSON que contiene todos los detalles sobre la imagen, incluyendo:
- Información de las capas (layer)
- Variables de entorno
- Arquitectura
- Sistema operativo
- Configuración
La salida es bastante larga y detallada. Aquí hay un fragmento de lo que podría ver:
[
{
"Id": "sha256:58db3edaf2beXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"RepoTags": [
"ubuntu:22.04"
],
"RepoDigests": [
"ubuntu@sha256:2b7412e6465c3fc7fc5bb21d3e6f1917c167358449fecac8176c6e496e5c1f05f"
],
...
}
]
Historial de la Imagen
Para ver el historial de capas (layer) de una imagen (cómo se construyó), use el comando docker history:
docker history ubuntu:22.04
La salida muestra cada capa que compone la imagen:
IMAGE CREATED CREATED BY SIZE
58db3edaf2be 3 weeks ago /bin/sh -c #(nop) CMD ["bash"] 0B
<missing> 3 weeks ago /bin/sh -c #(nop) ADD file:15efc167a417... 77.8MB
Eliminando Imágenes de Docker
Cuando ya no necesite una imagen, puede eliminarla para liberar espacio en disco usando el comando docker rmi:
docker rmi nginx
Si tiene éxito, Docker muestra los ID de las imágenes eliminadas:
Untagged: nginx:latest
Untagged: nginx@sha256:f9c305f882a7062db720e582ce619686cbe29742eea6e1db6dcf84b200eec560
Deleted: sha256:605c77e624ddb75e6110f997c58876bba43f0blindividualayeridshereXX
(...more layers deleted...)
Si la imagen está siendo utilizada por un contenedor, necesitará eliminar el contenedor primero o usar la opción -f (force):
docker rmi -f nginx
Ahora sabe cómo gestionar sus imágenes de Docker. Pasemos al paso final donde realmente usaremos una imagen para ejecutar un contenedor.
Usando Imágenes de Docker
Extraer (pulling) imágenes de Docker es solo el primer paso. Ahora, aprendamos a usar estas imágenes para ejecutar contenedores.
Ejecutando un Contenedor desde una Imagen
Para crear e iniciar un contenedor desde una imagen, use el comando docker run:
docker run ubuntu:22.04 echo "Hello from Ubuntu container"
Este comando:
- Crea un nuevo contenedor desde la imagen
ubuntu:22.04 - Ejecuta el comando
echo "Hello from Ubuntu container"dentro del contenedor - Muestra la salida:
Hello from Ubuntu container
Después de ejecutar el comando, el contenedor se detiene porque ha completado su tarea.
Ejecutando un Contenedor Interactivo
Para iniciar un shell interactivo dentro de un contenedor, use las opciones -i (interactive) y -t (terminal):
docker run -it ubuntu:22.04 bash
Esto le da un shell bash dentro del contenedor Ubuntu donde puede ejecutar comandos:
root@a1b2c3d4e5f6:/## ls
bin dev home lib32 libx32 mnt proc run srv tmp var
boot etc lib lib64 media opt root sbin sys usr
Para salir del contenedor, escriba exit o presione Ctrl+D:
root@a1b2c3d4e5f6:/## exit
exit
Ejecutando un Contenedor en Modo Desconectado (Detached Mode)
Para ejecutar un contenedor en segundo plano (modo desconectado), use la opción -d:
docker run -d --name nginx-server -p 8080:80 nginx
Este comando:
- Crea un contenedor llamado
nginx-serverdesde la imagennginx - Lo ejecuta en modo desconectado (
-d) - Mapea el puerto 8080 en su host al puerto 80 en el contenedor
- Retorna un ID de contenedor:
e1d0ac1dcb21a93d9d878dcf40c054eb9f3c2b1bf5ecce7c29b6fa8ce6b219c1
Accediendo al Contenedor en Ejecución
Ahora puede acceder al servidor web Nginx en http://localhost:8080 en su navegador, o usar curl para verificar que está funcionando:
curl localhost:8080
Esto debería mostrar la página de bienvenida HTML de Nginx:
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
...
</html>
Listando Contenedores en Ejecución
Para ver todos los contenedores en ejecución, use:
docker ps
Esto muestra información sobre sus contenedores en ejecución:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e1d0ac1dcb21 nginx "/docker-entrypoint.…" 30 seconds ago Up 29 seconds 0.0.0.0:8080->80/tcp nginx-server
Deteniendo y Eliminando Contenedores
Para detener un contenedor en ejecución:
docker stop nginx-server
Para eliminar un contenedor detenido:
docker rm nginx-server
Ahora ha usado con éxito imágenes de Docker para ejecutar contenedores. Este es el flujo de trabajo fundamental para usar Docker en sus procesos de desarrollo e implementación.
Resumen
Felicitaciones por completar este laboratorio de imágenes de Docker. Ha aprendido las habilidades esenciales para trabajar con imágenes de Docker:
- Comprender qué son las imágenes de Docker y cómo se organizan en los registros (registries)
- Buscar y extraer (pulling) imágenes de Docker desde Docker Hub
- Gestionar sus imágenes locales de Docker, incluyendo listarlas, inspeccionarlas y eliminarlas
- Usar imágenes de Docker para ejecutar contenedores en diferentes modos
Estas habilidades forman la base para trabajar con Docker y le permitirán aprovechar la containerización en su flujo de trabajo de desarrollo. Ahora puede extraer cualquier imagen de Docker desde registros públicos o privados y usarlas para ejecutar aplicaciones en contenedores.
Próximos pasos para un aprendizaje adicional:
- Crear sus propias imágenes de Docker con Dockerfiles
- Trabajar con Docker Compose para aplicaciones de múltiples contenedores
- Usar volúmenes de Docker para almacenamiento persistente
- Configurar la red de contenedores (container networking)
Siga explorando el vasto ecosistema de imágenes de Docker disponibles en Docker Hub para encontrar herramientas y aplicaciones que puedan acelerar su proceso de desarrollo.



