¿Cómo buscar imágenes de Docker?

DockerBeginner
Practicar Ahora

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:

  1. Visitando el sitio web de Docker Hub (hub.docker.com)
  2. 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:

  1. Imágenes oficiales: Prefiera las imágenes oficiales, ya que son mantenidas por el proveedor de software
  2. Imágenes populares: Un mayor número de estrellas indica más usuarios y, potencialmente, un mejor mantenimiento
  3. Actualizaciones recientes: Verifique cuándo se actualizó la imagen por última vez
  4. Documentación: Busque imágenes con buena documentación
  5. 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-name o simplemente image-name para 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:

  1. Crea un nuevo contenedor basado en la imagen de Ubuntu
  2. Ejecuta el comando echo "Hello from Docker" dentro del contenedor
  3. 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:

  1. Creado (Created): El contenedor se crea pero no se inicia
  2. En ejecución (Running): El contenedor se está ejecutando actualmente
  3. Pausado (Paused): La ejecución del contenedor está pausada
  4. Detenido (Stopped): El contenedor ha salido pero aún existe
  5. 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:

  1. Verificado su instalación de Docker y comprendido el concepto de imágenes de Docker
  2. Aprendido a buscar imágenes de Docker usando el comando docker search
  3. Descargado imágenes de Docker a su máquina local usando docker pull
  4. Listado e inspeccionado sus imágenes locales de Docker
  5. Creado y ejecutado contenedores desde estas imágenes usando varias opciones de docker run
  6. 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.