Extrae imágenes almacenadas en caché de Docker Hub

Container 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

Si deseas configurar tu daemon de Docker para extraer imágenes de la caché de Container 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, ingresa el nombre de host de Container 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é

Container 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 Container 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 Container 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. Una solicitud para extraer directamente desde mirror.gcr.io fallará si no existe una copia en caché de la imagen.

¿Qué sigue?