Extrae 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 tu daemon de Docker a fin de extraer imágenes desde Artifact Registry caché:

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 Artifact Registry Nombre de host:

      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 las imágenes solicitadas con más 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 comprueba 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.

Para 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. Control remoto los repositorios admiten la autenticación en Docker Hub. Te recomendamos que te autentiques en Docker Hub, incluso si solo usas imágenes públicas, ya que aumentará tu límite de velocidad de descarga. Para obtener más información sobre los límites de velocidad de descarga de Docker Hub, consulta el límite de frecuencia de Docker Hub.

¿Qué sigue?