Extrair imagens do Docker Hub armazenadas em cache

O Artifact Registry armazena em cache imagens públicas do Docker Hub acessadas com frequência mirror.gcr.io: Você pode configurar o daemon do Docker para usar uma imagem pública armazenada em cache, se houver uma disponível, ou extrair a imagem do Docker Hub se uma cópia em cache não estiver disponível.

Os serviços do Google Cloud, como o Cloud Build e o Google Kubernetes Engine, verificam automaticamente se há imagens em cache antes de tentar extrair uma imagem do Docker Hub.

Imagens em cache em mirror.gcr.io são:

  • armazenadas em um repositório gerenciado pelo Google;
  • mais protegidas das interrupções do Docker Hub;
  • integradas facilmente ao ecossistema do Google Cloud;
  • Sincronizadas com o Docker Hub.

Como configurar o daemon do Docker

Para configurar o daemon do Docker para extrair imagens do cache do Artifact Registry:

CLI

  1. Configure o daemon de uma das seguintes maneiras:

    • Para configurar o daemon do Docker automaticamente na inicialização, defina o seguinte valor em /etc/docker/daemon.json

      {
        "registry-mirrors": ["https://mirror.gcr.io"]
      }
      
    • Ao iniciar o daemon, transmita o nome do host do Artifact Registry:

      dockerd --registry-mirror=https://mirror.gcr.io
      
    • Adicione a linha a seguir ao arquivo /etc/default/docker:

      DOCKER_OPTS="${DOCKER_OPTS} --registry-mirror=https://mirror.gcr.io"
      
  2. Reinicie o daemon do Docker.

    • No Linux, execute um dos seguintes comandos:

      sudo service docker restart
      

      ou

      sudo service docker stop && sudo service docker start
      
    • No macOS ou Windows, execute o seguinte comando:

      docker-machine restart
      

IU do Docker

  1. Abra o menu Preferences do Docker.
  2. Clique em Daemon.
  3. Clique em Advanced. No campo JSON, adicione uma chave registry-mirrors com https://mirror.gcr.io como um valor:

    {
      "registry-mirrors" : [
        "https://mirror.gcr.io"
      ]
    }
    
  4. Clique em Apply & Restart.

Para verificar se o cache está configurado corretamente, execute:

docker system info

A saída deve incluir Registry Mirrors e deve ser semelhante a esta:

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

Como extrair imagens armazenadas em cache

O Artifact Registry adiciona imagens solicitadas com frequência ao cache para que elas sejam disponibilizadas para solicitações futuras. Ele também remove periodicamente imagens que não são mais solicitadas.

Depois de configurar o daemon do Docker para usar o cache do Artifact Registry, o Docker executa as seguintes etapas quando você extrai uma imagem pública do Docker Hub com um comando docker pull:

  1. O daemon do Docker verifica o cache do Artifact Registry e busca as imagens, se elas existirem. Se a configuração do daemon incluir outros espelhos do Docker, ele verificará cada um deles para uma cópia em cache da imagem.
  2. Se a imagem ainda não for encontrada, o daemon do Docker busca a imagem no repositório canônico no Docker Hub.

Extrair imagens em cache não é contabilizado em limites de taxa do Docker Hub. No entanto, não há garantia de que uma imagem específica será armazenada em cache por um longo período. Consiga imagens em cache em mirror.gcr.io configurando o daemon do Docker.

Para autenticar no Docker Hub para imagens que não são armazenadas em cache no mirror.gcr.io, usar os repositórios remotos do Artifact Registry. Controle remoto os repositórios dão suporte à autenticação no Docker Hub. Recomendamos fazer a autenticação ao Docker Hub, mesmo que esteja usando apenas imagens públicas, porque isso aumenta o limite de taxa de download. Para mais informações sobre os limites da taxa de download do Docker Hub, consulte Limite de taxa do Docker Hub.

A seguir