Extraer imágenes almacenadas en caché de Docker Hub

Artifact Registry almacena en caché las imágenes públicas de Docker Hub a las que se accede con frecuencia en mirror.gcr.io. Puedes configurar el daemon de Docker para usar una imagen pública en caché, si existe una, o extraer la imagen de Docker Hub si no hay una copia almacenada en caché.

Los servicios de Google Cloud, como Cloud Build y Google Kubernetes Engine, comprueban de forma automática si hay imágenes en caché antes de intentar extraer una imagen de Docker Hub.

Las imágenes almacenadas en caché en mirror.gcr.io son las siguientes:

  • Se almacena en un repositorio que administra Google.
  • Están más aisladas de las interrupciones de Docker Hub.
  • Se integran fácilmente en el ecosistema de Google Cloud.
  • Se mantienen sincronizadas con Docker Hub.

Configura el daemon de Docker

Para configurar el daemon de Docker a fin de extraer imágenes de la caché de Artifact Registry, sigue estos pasos:

CLI

  1. Configura el daemon de una de las siguientes maneras:

    • Para configurar el daemon de Docker automáticamente al inicio, establece el siguiente valor como /etc/docker/daemon.json

      {
        "registry-mirrors": ["https://mirror.gcr.io"]
      }
      
    • Cuando inicies el daemon, pasa el nombre de host de Artifact Registry:

      dockerd --registry-mirror=https://mirror.gcr.io
      
    • Agrega la siguiente línea a tu archivo /etc/default/docker:

      DOCKER_OPTS="${DOCKER_OPTS} --registry-mirror=https://mirror.gcr.io"
      
  2. Reinicia el daemon de Docker.

    • En Linux, ejecuta uno de los siguientes comandos:

      sudo service docker restart
      

      o

      sudo service docker stop && sudo service docker start
      
    • En macOS o Windows, ejecuta el siguiente comando:

      docker-machine restart
      

IU de Docker

  1. Abre el menú Preferencias de Docker.
  2. Haz clic en Daemon.
  3. Haz clic en Avanzado. En el campo JSON, agrega una clave registry-mirrors con https://mirror.gcr.io como valor:

    {
      "registry-mirrors" : [
        "https://mirror.gcr.io"
      ]
    }
    
  4. Haz clic en Aplicar y reiniciar.

Para verificar que la caché esté configurada correctamente, ejecuta el siguiente comando:

docker system info

El resultado debe incluir Registry Mirrors y debería ser similar al siguiente:

Containers: 2
 Running: 0
 Paused: 0
 Stopped: 2
Images: 2
Server Version: 17.03.1-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
...
Registry Mirrors:
 https://mirror.gcr.io

Extrae imágenes almacenadas en caché

Artifact Registry agrega imágenes solicitadas con frecuencia a la caché a fin de que estén disponibles para solicitudes futuras. También quita las imágenes que ya no se solicitan de forma periódica.

Después de configurar el daemon de Docker para usar la caché de Artifact Registry, Docker realiza los siguientes pasos cuando extraes una imagen pública de Docker Hub con un comando docker pull:

  1. El daemon de Docker verifica la caché de Artifact Registry y recupera las imágenes si las hay. Si tu configuración de daemon incluye otras duplicaciones de Docker, el daemon verifica cada una para obtener una copia almacenada en caché de la imagen.
  2. Si la imagen aún no se encuentra, el daemon de Docker recupera la imagen desde el repositorio canónico de Docker Hub.

La extracción de imágenes almacenadas en caché no cuenta para los límites de frecuencia de Docker Hub. Sin embargo, no hay garantía de que una imagen en particular se almacene en caché por un período prolongado. Obtén solo imágenes almacenadas en caché en mirror.gcr.io mediante la configuración del daemon de Docker.

Si quieres autenticarte en Docker Hub para las imágenes que no están almacenadas en caché en mirror.gcr.io, usa los repositorios remotos de Artifact Registry. Los repositorios remotos admiten la autenticación en Docker Hub. Recomendamos autenticarte en Docker Hub incluso si solo usas imágenes públicas, ya que aumentará el límite de frecuencia de descargas. Para obtener más información sobre los límites de frecuencia de descarga de Docker Hub, consulta Límite de frecuencia de Docker Hub.

¿Qué sigue?