Introducción
Docker se ha convertido en una herramienta esencial para el desarrollo de software moderno, permitiendo a los desarrolladores empaquetar e implementar aplicaciones de manera consistente y confiable. Las imágenes de Docker sirven como los bloques de construcción para las aplicaciones en contenedores, proporcionando entornos preconfigurados que se pueden compartir e implementar fácilmente.
En este laboratorio práctico, aprenderá a buscar imágenes de Docker utilizando la interfaz de línea de comandos de Docker, a descargar (pull) estas imágenes a su máquina local y a ejecutar contenedores basados en esas imágenes. Al final de este tutorial, tendrá las habilidades necesarias para encontrar y utilizar imágenes de Docker que cumplan con los requisitos específicos de su proyecto.
Verificando la Instalación de Docker
Antes de comenzar a buscar imágenes de Docker, primero verifiquemos que Docker esté correctamente instalado y en ejecución en su sistema.
Verificando la Instalación de Docker
Abra una ventana de terminal y ejecute el siguiente comando para verificar si Docker está instalado:
docker --version
Debería ver una salida similar a esta:
Docker version 20.10.21, build baeda1f
Esto confirma que Docker está instalado en su sistema. El número de versión podría ser diferente dependiendo de su instalación.
Verificando el Estado del Servicio Docker
También verifiquemos si el servicio Docker se está ejecutando correctamente ejecutando:
sudo systemctl status docker
Debería ver una salida que indica que el servicio Docker está activo y en ejecución:
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since...
Si por alguna razón Docker no se está ejecutando, puede iniciarlo con:
sudo systemctl start docker
Entendiendo las Imágenes de Docker
Una imagen de Docker es una plantilla de solo lectura que contiene un conjunto de instrucciones para crear un contenedor. Puede pensar en una imagen como una instantánea o un plano de una aplicación junto con su entorno, dependencias y configuración.
Las imágenes de Docker son:
- En capas (Layered): Construidas utilizando una serie de capas que se pueden compartir entre imágenes
- De solo lectura (Read-only): No se pueden modificar una vez creadas
- Nombradas y etiquetadas (Tagged): Identificadas por un nombre y una etiqueta opcional (por ejemplo,
ubuntu:22.04)
En el siguiente paso, aprenderemos a buscar estas imágenes.
Buscando Imágenes de Docker
Docker Hub es el registro público oficial para imágenes de Docker. Contiene miles de imágenes, incluidas imágenes oficiales mantenidas por proveedores de software e imágenes de la comunidad creadas por usuarios de Docker.
Búsqueda Básica de Imágenes
Para buscar imágenes de Docker, use el comando docker search seguido de un término de búsqueda. Busquemos imágenes de Ubuntu:
docker search ubuntu
Verá una salida similar a esta:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
ubuntu Ubuntu is a Debian-based Linux operating sys… 14938 [OK]
ubuntu-upstart Upstart is an event-based replacement for th… 112 [OK]
rastasheep/ubuntu-sshd Dockerized SSH service, built on top of offi… 254 [OK]
...
La salida muestra:
- NAME: El nombre de la imagen
- DESCRIPTION: Una breve descripción de la imagen
- STARS: Número de usuarios que han marcado con una estrella la imagen (indicador de popularidad)
- OFFICIAL: Etiqueta que indica una imagen oficial mantenida por el proveedor de software
- AUTOMATED: Etiqueta que indica una imagen construida por un proceso automatizado
Filtrando los Resultados de la Búsqueda
Puede filtrar los resultados de la búsqueda utilizando la opción --filter. Por ejemplo, para mostrar solo imágenes oficiales:
docker search --filter=is-official=true ubuntu
Para encontrar imágenes con al menos 100 estrellas (imágenes populares):
docker search --filter=stars=100 ubuntu
También puede combinar múltiples filtros:
docker search --filter=is-official=true --filter=stars=100 nginx
Este comando busca imágenes oficiales de Nginx con al menos 100 estrellas.
Encontrando Versiones Específicas
El comando docker search no muestra las etiquetas (versiones) de las imágenes, pero puede encontrarlas:
- Visitando el sitio web de Docker Hub (hub.docker.com)
- Usando el comando
docker image inspect(después de descargar la imagen)
Por ejemplo, para ver todas las versiones disponibles de Ubuntu, visite: https://hub.docker.com/_/ubuntu?tab=tags
Eligiendo la Imagen Correcta
Al seleccionar una imagen de Docker, considere lo siguiente:
- Imágenes oficiales: Prefiera las imágenes oficiales, ya que son mantenidas por el proveedor de software
- Imágenes populares: Un mayor número de estrellas indica más usuarios y, potencialmente, un mejor mantenimiento
- Actualizaciones recientes: Verifique cuándo se actualizó la imagen por última vez
- Documentación: Busque imágenes con buena documentación
- Tamaño: Considere el tamaño de la imagen, ya que las imágenes más pequeñas se descargan más rápido
Descargando Imágenes de Docker
Una vez que haya encontrado una imagen que desea usar, puede descargarla a su máquina local con el comando docker pull.
Descargando una Imagen (Pulling an Image)
Descarguemos la imagen oficial de Ubuntu:
docker pull ubuntu
Verá una salida similar a:
Using default tag: latest
latest: Pulling from library/ubuntu
7b1a6ab2e44d: Pull complete
Digest: sha256:626ffe58f6e7566e00254b638eb7e0f3b11d4da9675088f4781a50ae288f3322
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest
Por defecto, Docker descarga la etiqueta latest. Para descargar una versión específica, agregue una etiqueta:
docker pull ubuntu:20.04
Verá una salida que muestra el progreso de la descarga para esa versión específica.
Listando las Imágenes Descargadas
Para ver todas las imágenes que ha descargado, use:
docker images
O el formato de comando más nuevo:
docker image ls
Ambos comandos producen la misma salida:
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 1318b700e415 4 weeks ago 72.8MB
ubuntu 20.04 1318b700e415 4 weeks ago 72.8MB
Entendiendo las Etiquetas de las Imágenes
Las imágenes de Docker se identifican por etiquetas (tags). El formato de la etiqueta es típicamente:
repository:tag
Donde:
- repository: Generalmente en el formato
username/image-nameo simplementeimage-namepara imágenes oficiales - tag: Especifica la versión (por ejemplo,
latest,20.04,3.9-alpine)
Si omite la etiqueta, Docker asume que desea la etiqueta latest.
Obteniendo Detalles de la Imagen
Para ver información detallada sobre una imagen, use:
docker image inspect ubuntu:latest
Este comando muestra un objeto JSON con todos los metadatos de la imagen, incluyendo capas, configuración y variables de entorno.
Para ver el historial de las capas de la imagen:
docker history ubuntu:latest
Esto muestra cómo se construyó la imagen, capa por capa.
Ejecutando Contenedores desde Imágenes
Ahora que ha descargado algunas imágenes de Docker, aprendamos a crear y ejecutar contenedores basados en estas imágenes.
Ejecutando un Contenedor Básico
Para ejecutar un contenedor desde una imagen, use el comando docker run:
docker run ubuntu echo "Hello from Docker"
Este comando:
- Crea un nuevo contenedor basado en la imagen de Ubuntu
- Ejecuta el comando
echo "Hello from Docker"dentro del contenedor - Sale después de que el comando se completa
Debería ver la salida:
Hello from Docker
Ejecutando un Contenedor Interactivo
Para interactuar con un contenedor, use las flags -it (terminal interactivo):
docker run -it ubuntu bash
Esto inicia un shell bash dentro del contenedor. Ahora está efectivamente "dentro" del contenedor y puede ejecutar comandos.
Pruebe algunos comandos:
ls
cat /etc/os-release
Para salir del contenedor, escriba:
exit
Listando Contenedores en Ejecución
Para ver todos los contenedores en ejecución:
docker ps
Dado que nuestros contenedores salieron inmediatamente después de la finalización, es posible que no vea ninguna salida. Para ver todos los contenedores, incluidos los detenidos:
docker ps -a
Esto muestra todos los contenedores, su estado y cuándo fueron creados/salieron.
Ciclo de Vida del Contenedor
Los contenedores tienen un ciclo de vida:
- Creado (Created): El contenedor se crea pero no se inicia
- En ejecución (Running): El contenedor se está ejecutando actualmente
- Pausado (Paused): La ejecución del contenedor está pausada
- Detenido (Stopped): El contenedor ha salido pero aún existe
- Eliminado (Removed): El contenedor se elimina
Puede eliminar un contenedor detenido con:
docker rm <container_id>
Reemplace <container_id> con el ID que se muestra en la salida de docker ps -a.
Para eliminar automáticamente un contenedor después de que salga, use la flag --rm:
docker run --rm ubuntu echo "This container will be removed after execution"
Ejecutando un Contenedor de Servidor Web
Intentemos algo más práctico ejecutando un servidor web Nginx:
docker pull nginx:alpine
Esto descarga una imagen ligera de Nginx basada en Alpine Linux.
Ahora, ejecute un contenedor que mapea el puerto 8080 en su host al puerto 80 en el contenedor:
docker run -d -p 8080:80 --name my-nginx nginx:alpine
Este comando:
-d: Ejecuta el contenedor en modo desasociado (background)-p 8080:80: Mapea el puerto 8080 en su host al puerto 80 en el contenedor--name my-nginx: Nombra el contenedor "my-nginx"
Ahora puede acceder a la página de bienvenida de Nginx navegando a http://localhost:8080 en un navegador web, o usando curl:
curl http://localhost:8080
Debería ver el contenido HTML de la página de bienvenida de Nginx.
Para detener y eliminar este contenedor:
docker stop my-nginx
docker rm my-nginx
Resumen
Felicitaciones por completar este laboratorio de búsqueda y uso de imágenes de Docker. A lo largo de este tutorial, ha:
- Verificado su instalación de Docker y comprendido el concepto de imágenes de Docker
- Aprendido a buscar imágenes de Docker usando el comando
docker search - Descargado imágenes de Docker a su máquina local usando
docker pull - Listado e inspeccionado sus imágenes locales de Docker
- Creado y ejecutado contenedores desde estas imágenes usando varias opciones de
docker run - Comprendido el ciclo de vida del contenedor y cómo administrar los contenedores
Estas habilidades forman la base para trabajar con Docker en sus proyectos de desarrollo. Ahora puede buscar, descargar y usar imágenes de Docker para crear entornos en contenedores para sus aplicaciones.
Los siguientes pasos en su viaje con Docker podrían incluir:
- Aprender a crear sus propias imágenes de Docker con Dockerfiles
- Comprender las redes de Docker y la persistencia de datos
- Explorar Docker Compose para aplicaciones de múltiples contenedores
- Profundizar en la orquestación de contenedores con Kubernetes
Siga experimentando con diferentes imágenes de Docker para descubrir el vasto ecosistema de contenedores preconstruidos disponibles para acelerar su flujo de trabajo de desarrollo.



