Cómo usar el comando de extracción de imágenes de Docker para descargar imágenes

DockerDockerBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderá cómo utilizar el comando docker pull para descargar imágenes de Docker desde registros. Explorará diferentes métodos para extraer imágenes, incluyendo la extracción de una imagen específica por su etiqueta (tag) desde Docker Hub, la extracción de una imagen utilizando su resumen inmutable (immutable digest) para un control de versiones garantizado, la extracción de todas las imágenes etiquetadas de un repositorio y la extracción de imágenes de registros distintos de Docker Hub.

Al completar estos pasos, adquirirá experiencia práctica en la adquisición de imágenes de Docker, que es una habilidad fundamental para la construcción y ejecución de aplicaciones en contenedores. Aprenderá cómo especificar versiones y fuentes de imágenes, lo que le permitirá obtener de manera confiable las imágenes que necesita para sus proyectos.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/ImageOperationsGroup -.-> docker/images("List Images") subgraph Lab Skills docker/pull -.-> lab-555159{{"Cómo usar el comando de extracción de imágenes de Docker para descargar imágenes"}} docker/images -.-> lab-555159{{"Cómo usar el comando de extracción de imágenes de Docker para descargar imágenes"}} end

Extraer una imagen específica por etiqueta (tag) desde Docker Hub

En este paso, aprenderá cómo extraer una imagen de Docker específica por su etiqueta (tag) desde Docker Hub. Docker Hub es un registro público que alberga muchas imágenes oficiales y contribuidas por la comunidad de Docker. Extraer una imagen significa descargarla desde un registro a su máquina local.

El comando básico para extraer una imagen es docker pull <image_name>:<tag>. Si no especifica una etiqueta (tag), Docker extraerá la etiqueta latest por defecto. Sin embargo, es una buena práctica especificar una etiqueta (tag) para asegurarse de obtener una versión específica de la imagen.

Vamos a extraer la imagen hello-world con la etiqueta (tag) latest. Esta es una imagen muy pequeña utilizada para probar si su instalación de Docker está funcionando correctamente.

docker pull hello-world:latest

Debería ver una salida que indique que Docker está descargando las capas de la imagen.

Using default tag: latest
latest: Pulling from library/hello-world
Digest: sha256:f52335ce493f8f15cfcf46725b2909db9087b688aedabbbd2a167ae30b6da6fc
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest

Ahora, vamos a extraer la imagen ubuntu con una etiqueta (tag) específica, por ejemplo, 20.04. Esto descargará la imagen de Ubuntu 20.04 LTS.

docker pull ubuntu:20.04

Verá una salida similar que muestra el progreso de la descarga.

20.04: Pulling from library/ubuntu
... (download progress) ...
Status: Downloaded newer image for ubuntu:20.04
docker.io/library/ubuntu:20.04

Para ver las imágenes que ha extraído, puede utilizar el comando docker images.

docker images

Este comando lista todas las imágenes almacenadas en su máquina local, incluyendo su repositorio, etiqueta (tag), ID de imagen, tiempo de creación y tamaño.

REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
ubuntu        20.04     ...            ...            ...
hello-world   latest    ...            ...            ...

Ha extraído con éxito imágenes específicas por etiqueta (tag) desde Docker Hub.

Extraer una imagen por su resumen inmutable (immutable digest)

En este paso, aprenderá cómo extraer una imagen de Docker utilizando su resumen inmutable (immutable digest). Si bien las etiquetas (tags) son convenientes, pueden actualizarse para apuntar a una versión diferente de la imagen. Un resumen (digest), por otro lado, es un identificador único para una configuración específica de capas de imagen y su historial. Es una forma más confiable de asegurarse de que está extrayendo exactamente la misma imagen cada vez.

El formato para extraer una imagen por resumen (digest) es docker pull <image_name>@<digest>.

Primero, encontremos el resumen (digest) de una imagen que ya tenemos. Podemos utilizar el comando docker images --digests para mostrar los resúmenes (digests) de las imágenes locales.

docker images --digests

Debería ver una salida similar a esta, incluyendo la columna DIGEST:

REPOSITORY    TAG       DIGEST                                                                      IMAGE ID       CREATED        SIZE
ubuntu        20.04     sha256:...   ...            ...
hello-world   latest    sha256:f52335ce493f8f15cfcf46725b2909db9087b688aedabbbd2a167ae30b6da6fc   ...            ...            ...

Utilicemos el resumen (digest) de la imagen hello-world. Copie la cadena completa del resumen (comenzando con sha256:).

Ahora, intentemos extraer la imagen hello-world nuevamente, pero esta vez utilizando su resumen (digest). Reemplace <digest> con el resumen real que copió.

docker pull hello-world@sha256:f52335ce493f8f15cfcf46725b2909db9087b688aedabbbd2a167ae30b6da6fc

Dado que probablemente ya tenga esta capa de imagen, Docker informará que la imagen está actualizada.

sha256:f52335ce493f8f15cfcf46725b2909db9087b688aedabbbd2a167ae30b6da6fc: Pulling from library/hello-world
Digest: sha256:f52335ce493f8f15cfcf46725b2909db9087b688aedabbbd2a167ae30b6da6fc
Status: Downloaded newer image for hello-world@sha256:f52335ce493f8f15cfcf46725b2909db9087b688aedabbbd2a167ae30b6da6fc
docker.io/library/hello-world@sha256:f52335ce493f8f15cfcf46725b2909db9087b688aedabbbd2a167ae30b6da6fc

Extraer por resumen (digest) es especialmente útil en entornos de producción o scripts automatizados donde necesita garantizar que está desplegando una versión específica e inmutable de una imagen.

Puede verificar las imágenes nuevamente utilizando docker images --digests. Verá la imagen hello-world en la lista, posiblemente con tanto la etiqueta (tag) como el resumen (digest) si la extrajo por etiqueta (tag) previamente.

docker images --digests

Extraer todas las imágenes etiquetadas (tagged) de un repositorio

En este paso, aprenderá cómo extraer todas las imágenes etiquetadas (tagged) de un repositorio específico en Docker Hub. Esto puede ser útil cuando desea descargar múltiples versiones de una imagen para pruebas u otros fines.

Para extraer todas las imágenes etiquetadas (tagged) de un repositorio, puede utilizar el comando docker pull -a <image_name>. La bandera -a significa "todas las etiquetas" (all-tags).

Intentemos extraer todas las imágenes etiquetadas (tagged) del repositorio alpine. Alpine es una distribución Linux ligera que se utiliza a menudo en contenedores.

docker pull -a alpine

Este comando iniciará la descarga de todas las imágenes en el repositorio alpine que tienen una etiqueta (tag). Verá una salida que muestra la descarga de varias etiquetas (tags) como latest, 3.14, 3.15, etc.

Using default tag: latest
latest: Pulling from library/alpine
... (download progress for various tags) ...
Status: Downloaded newer image for alpine:latest
Status: Downloaded newer image for alpine:3.14
Status: Downloaded newer image for alpine:3.15
...
docker.io/library/alpine:latest
docker.io/library/alpine:3.14
docker.io/library/alpine:3.15
...

Dependiendo del número de etiquetas (tags) en el repositorio, este comando puede tardar algún tiempo en completarse.

Una vez que el comando finalice, puede utilizar docker images para ver todas las imágenes alpine que ha extraído.

docker images | grep alpine

Verá una lista de imágenes alpine con diferentes etiquetas (tags).

REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
alpine        latest    ...            ...            ...
alpine        3.14      ...            ...            ...
alpine        3.15      ...            ...            ...
...

Este método es eficiente para descargar múltiples versiones de una imagen de un solo repositorio.

Extraer una imagen de un registro diferente

En este paso, aprenderá cómo extraer una imagen de Docker de un registro distinto de Docker Hub. Si bien Docker Hub es el registro predeterminado, es posible que necesite extraer imágenes de registros privados, registros de proveedores de servicios en la nube (como Google Container Registry, Amazon Elastic Container Registry) u otros registros públicos.

Para extraer una imagen de un registro diferente, debe especificar el nombre de host del registro antes del nombre de la imagen. El formato suele ser <registry_hostname>/<image_name>:<tag> o <registry_hostname>/<user_or_organization>/<image_name>:<tag>.

Para este ejemplo, extraeremos una imagen de Google Container Registry (GCR). Extraeremos la imagen hello-app del proyecto google-samples. El nombre de host del registro de GCR es gcr.io.

docker pull gcr.io/google-samples/hello-app:1.0

Este comando le indica a Docker que extraiga la imagen llamada hello-app con la etiqueta (tag) 1.0 del registro ubicado en gcr.io dentro del proyecto google-samples.

Verá una salida que indica el proceso de descarga desde el registro especificado.

1.0: Pulling from google-samples/hello-app
... (download progress) ...
Status: Downloaded newer image for gcr.io/google-samples/hello-app:1.0
gcr.io/google-samples/hello-app:1.0

Después de que se complete la extracción, puede listar sus imágenes locales utilizando docker images para ver la imagen que acaba de extraer de GCR.

docker images

Debería ver gcr.io/google-samples/hello-app en la lista de sus imágenes.

REPOSITORY                         TAG       IMAGE ID       CREATED        SIZE
gcr.io/google-samples/hello-app    1.0       ...            ...            ...
ubuntu                             20.04     ...            ...            ...
hello-world                        latest    ...            ...            ...
alpine                             latest    ...            ...            ...
alpine                             3.14      ...            ...            ...
alpine                             3.15      ...            ...            ...
...

Esto demuestra cómo extraer imágenes de registros diferentes al Docker Hub predeterminado especificando el nombre de host del registro.

Resumen

En este laboratorio, aprendiste cómo usar el comando docker pull para descargar imágenes de Docker desde registros. Comenzaste extrayendo imágenes específicas de Docker Hub utilizando sus etiquetas (tags), comprendiendo que especificar una etiqueta es crucial para obtener una versión particular. También aprendiste cómo ver las imágenes que has descargado localmente utilizando el comando docker images.

El laboratorio también demostró cómo extraer una imagen utilizando su resumen inmutable (immutable digest), lo que garantiza que recuperes exactamente la misma versión de la imagen independientemente de los cambios en las etiquetas (tags). También exploraste cómo extraer todas las imágenes etiquetadas (tagged) de un repositorio y cómo extraer imágenes de registros diferentes a Docker Hub, lo que amplía tu capacidad para acceder a imágenes de diversas fuentes.