Usar la duplicación de Docker Hub de Container Registry

Container Registry duplica las imágenes públicas de Docker Hub que los usuarios de Container Registry solicitan con frecuencia. Estas imágenes:

  • Se almacenan en un repositorio que pertenece a 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 la duplicación del registro de Docker Hub. La duplicación de Container Registry capturará los cambios en las imágenes duplicadas de Docker Hub en 30 minutos o menos.

Puedes configurar tu daemon de Docker para recuperar imágenes desde la duplicación del registro de Docker Hub de Container Registry. Con Container Registry configurado como un duplicado, cuando recuperas una imagen pública sucede lo siguiente:

  • El daemon de Docker comprueba el registro de Container Registry y recupera las imágenes si las hay. Puedes configurar varias duplicaciones, por ejemplo, también puedes tener tu propia duplicación local. El daemon de Docker comprobará cada duplicación configurada para la imagen hasta que la encuentre.
  • Si no se encuentra la imagen, el daemon de Docker recupera la imagen desde el repositorio canónico de Docker Hub.
  • Container Registry agregará las imágenes solicitadas con más frecuencia a la duplicación a fin de que estén disponibles para solicitudes futuras.

La duplicación de Container Registry es una caché y duplica las imágenes para las que recibe solicitudes. Container Registry quitará periódicamente las imágenes que ya no se soliciten.

Recupera imágenes desde la duplicación de Container Registry

Para configurar el daemon de Docker a fin de recuperar imágenes de la duplicación de Container Registry, sigue las instrucciones que aparecen a continuación.

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"]
          }
          
    • O bien, cuando inicies el daemon, ingresa el nombre de host de Container Registry:

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

      DOCKER_OPTS="${DOCKER_OPTS} --registry-mirror=https://mirror.gcr.io"
          
  2. Según la plataforma que uses, ejecuta uno de los siguientes comandos para reiniciar el daemon de Docker:

    sudo restart docker
        sudo service docker stop && sudo service docker start
        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 http://mirror.gcr.io como valor:

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

Para asegurarte de que la duplicación esté configurada, 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:
       http://mirror.gcr.io
    

Ahora, todos los comandos docker pull que se usen para extraer imágenes de Docker Hub se solicitarán primero desde la duplicación de Container Registry.

Ve la lista de imágenes duplicadas

Puedes ver la lista de repositorios y la lista de etiquetas y resúmenes de un repositorio específico.

  • Para ver la lista de repositorios que se encuentran en la duplicación de Container Registry, ejecuta el siguiente comando:

    gcloud container images list --repository=mirror.gcr.io
        

    Este comando imprime la lista de repositorios que están directamente en mirror.gcr.io. Algunos de estos repositorios están anidados, por ejemplo, mirror.gcr.io/library tiene más repositorios anidados en él.

    Puedes ver la lista de los repositorios anidados con el siguiente comando:

    gcloud container images list --repository=[REPO]
        

    En el ejemplo anterior, [REPO] es un repositorio en mirror.gcr.io, por ejemplo, mirror.gcr.io/library.

    Este comando imprime la lista de repositorios que se encuentran directamente en el repositorio que especificaste.

  • Para ver las etiquetas y los resúmenes de uno de estos repositorios, usa el siguiente comando:

    gcloud container images list --repository=mirror.gcr.io/[REPO]
        

    donde [REPO] es uno de los repositorios anidados en mirror.gcr.io.

Qué sigue