¡Ayuda al desarrollo del sitio, compartiendo el artículo con amigos!

Introducción a Docker Pull

El 'docker pull' es un comando de Docker para descargar una imagen de Docker o un repositorio localmente en el host desde un registro público o privado. Cuando ejecutamos cualquier contenedor y la imagen de Docker especificada no está presente localmente, primero la extrae del registro. La mayoría de las veces, las imágenes se descargan de un registro público que es 'hub.docker.com' cuando creamos nuestras propias imágenes de Docker personalizadas mientras usamos la imagen oficial de Docker como imagen base. Hay diferentes banderas disponibles en este comando, sin embargo, algunas solo funcionan en la versión más reciente.

Sintaxis:

docker pull (OPCIONES) NOMBRE(:ETIQUETA|@DIGEST)

Opciones:

-all-tags, -a: Se utiliza para descargar todas las imágenes con diferentes etiquetas en ese repositorio.

-disable-content-trust: Omitirá la verificación de imagen antes de extraerla.

-plataforma: Se utiliza para configurar la plataforma.

-quiet, -q: Se utiliza para extraer imágenes en silencio (sin detalles).

-help: Nos ayuda a saber más sobre el comando si lo olvidamos.

extracción de ventana acoplable --ayuda

¿Cómo funciona el comando de extracción en Docker?

Cuando ejecutamos el comando de extracción desde la línea de comando, primero verifica localmente o en el host las imágenes y, si la imagen no existe localmente, el demonio Docker se conecta al 'hub' del registro público.docker.com' si no se menciona ningún registro privado en el archivo 'daemon.json' y extrae la imagen de Docker mencionada en el comando y, si encuentra la imagen localmente, busca las actualizaciones y descarga la versión más reciente de la imagen. En realidad, coincide con el resumen de la imagen detrás de escena. Además, si no mencionamos la etiqueta, extraerá la imagen con la etiqueta "más reciente" de forma predeterminada.

Si estamos tratando de acceder al registro detrás del servidor proxy, debemos configurar los ajustes del proxy del demonio Docker configurando las variables de entorno en un host usando systemd.

Podemos extraer solo 3 capas de una imagen simultáneamente usando este comando de extracción de forma predeterminada y si tenemos que descargar una imagen que tenga más capas, entonces podría haber una posibilidad de que se produzca un problema de tiempo de espera si la conexión a Internet es lento. Podemos ajustar la opción '-max-concurrent-downloads' en el archivo 'daemon.json'.

Ejemplo

Entendamos el comando con algunos ejemplos.

Escenario: - Diferentes formas de extraer imágenes de Docker desde Docker Hub.

1. Tire de la imagen 'alpina' sin ninguna etiqueta como se muestra a continuación:

docker tirar alpino

En el ejemplo anterior, podemos ver que si no proporcionamos ninguna etiqueta, el demonio Docker extrae la imagen con la etiqueta 'más reciente' de forma predeterminada y extrae la imagen solo si existe una imagen con la última etiqueta.

2. Tire de la imagen con una etiqueta específica, por ejemplo, extraeremos la misma imagen 'alpina' con una etiqueta diferente, es decir, 'borde', como se muestra a continuación: -

docker tirar alpino:borde

En el ejemplo anterior, podemos ver que hemos especificado la etiqueta después de ':', por lo que podemos especificar cualquier etiqueta que desee descargar, podría ser una versión como 3, 3.12, 3.12.0, etc. Podemos buscar en el repositorio público las etiquetas disponibles de cualquier imagen.

3. Incluso podemos extraer imágenes por resumen. Podemos ver que hay una clave llamada resumen cuando extraemos las imágenes en los ejemplos anteriores, por lo que podemos usar ese resumen para extraer la imagen como se muestra a continuación: -

docker tire alpine@sha256:3e92a8388546f6b15943678d323afdbbf1d950368264e0317b45e469dfa81d53

En el ejemplo anterior, extrajimos la imagen 'alpine:edge' pero usando el resumen y tenemos que usar '@' después del nombre de la imagen en lugar de ':'. Extraer la imagen usando el resumen es muy útil si la aplicación es compatible con cualquier imagen Docker específica porque hay una versión más nueva de la misma imagen y con la misma etiqueta que se está actualizando, por lo que la aplicación podría fallar.

Vamos a sacar otra imagen llamada 'ubuntu' usando la etiqueta y el resumen como se muestra a continuación: -

docker extraer ubuntu:20.04
ventana acoplable tirar ubuntu@sha256:bc2f7250f69267c9c6b66d7b6a81a54d3878bb85f1ebb5f951c896d13e6ba537

En el ejemplo anterior, primero usamos la etiqueta para descargar la imagen y luego usamos el resumen de la misma imagen para extraer la imagen y podemos ver el estado que dice 'La imagen está actualizada…' porque estamos sacando la misma imagen.

Escenario

Escenario n.º 1: extraiga la imagen de un registro diferente o de un registro privado

  1. Como sabemos, el comando de extracción descarga imágenes de Docker hub de forma predeterminada, sin embargo, podemos extraer imágenes de nuestro registro privado o de cualquier registro diferente, solo tenemos que especificar la ruta de ese registro mientras extraemos la imagen de ese registro, por ejemplo, si ya tenemos un registro ejecutándose como un contenedor en el mismo servidor, podemos usar el siguiente comando para extraer imágenes de Docker de ese registro local.

docker pull localhost:5000/alpine

En la instantánea anterior, podemos ver que primero mencionamos la ruta del registro seguido del nombre del repositorio y luego la etiqueta y la ruta no es más que la URL de ese servidor sin un especificador de protocolo (https:// ).

Lo importante es que la imagen debe estar disponible en el registro privado. Para este ejemplo, primero etiquetó una imagen alpina existente con el nombre 'localhost:5000/alpine' y la envió al registro local.

Escenario 2: Obtener un repositorio con todas las etiquetas disponibles

2. Podemos usar la opción '-all-tags' o '-a' para extraer todas las imágenes con diferentes etiquetas a la vez, ya que el comando 'docker pull' extrae solo una imagen a la vez de forma predeterminada y el comando se muestra a continuación: -

docker pull --all-tags alpine

En el ejemplo anterior, podemos ver que ha comenzado a descargar todas las imágenes con diferentes etiquetas del repositorio 'alpine'. Podemos usar el atajo de teclado 'ctrl+c' para interrumpir el tirón. Podemos usar el comando 'docker image ls' para verificar lo mismo que se muestra en la siguiente instantánea: -

imagen acoplable ls

Escenario n.º 3: extraiga las imágenes de Docker que no están firmadas y la confianza en el contenido está habilitada

Podemos usar la opción '-disable-content-trust' para descargar imágenes no verificadas como se muestra a continuación: -

docker pull localhost:5000/alpine
docker pull --disable-content-trust localhost:5000/alpine

En la instantánea anterior, podemos ver que el primer comando generó un error al extraer la imagen, ya que la imagen no se verificó y 'DOCKER_CONTENT_TRUST' está habilitado; sin embargo, cuando usamos '-disable-content- confianza', podemos extraer la imagen sin ningún error.De forma predeterminada, está deshabilitado, por lo que para probar este escenario podemos usar el comando 'exportar DOCKER_CONTENT_TRUST=1' para habilitarlo.

Escenario 4: extraiga la imagen sin ningún resultado detallado

Podemos usar la opción '-quiet' o '-q' para suprimir la salida detallada como se muestra a continuación: -

docker tirar -q nginx:alpino

En la instantánea de arriba, podemos ver que la salida no muestra las diferentes capas que se descargan o resumen o el estado, ya que podemos verlos si extraemos la imagen sin la opción '-q' como se muestra en la siguiente instantánea : -

docker pull nginx:alpino

Ventajas de Docker Pull

  1. Es útil descargar las imágenes desde cualquier registro, ya sea un registro público o un registro privado.
  2. Incluso puede extraer todo el repositorio si es necesario usando la opción '-all-tags'.
  3. Es útil descargar imágenes de Docker sin firmar; sin embargo, debemos ser conscientes de los riesgos al hacerlo.

Conclusión

Este es un comando útil y de uso frecuente mientras se trabaja con Docker. La opción '-plataforma' solo funciona con funciones experimentales habilitadas a partir de ahora. No se recomienda descargar imágenes de Docker sin firmar si no está familiarizado con la imagen, cómo funciona o qué hace.

¡Ayuda al desarrollo del sitio, compartiendo el artículo con amigos!