Extraia imagens em cache do Docker Hub

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

Google Cloud serviços como o Cloud Build e o Google Kubernetes Engine verificam automaticamente se existem imagens em cache antes de tentarem obter uma imagem do Docker Hub. Os

As imagens em cache em mirror.gcr.io são:

  • Armazenado num repositório gerido por Google Cloud.
  • Mais isolado de indisponibilidades do Docker Hub.
  • Integrado no Google Cloud ecossistema.
  • Mantido sincronizado com o Docker Hub.

Configurar o daemon do Docker

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

CLI

  1. Configure o daemon de uma das seguintes formas:

    • Para configurar o daemon do Docker automaticamente no arranque, defina o seguinte valor em /etc/docker/daemon.json

      {
        "registry-mirrors": ["https://mirror.gcr.io"]
      }
      
    • Quando iniciar o daemon, introduza o nome do anfitrião do Artifact Registry:

      dockerd --registry-mirror=https://mirror.gcr.io
      
    • Adicione a seguinte linha ao ficheiro /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 Preferências do Docker.
  2. Clique em Daemon.
  3. Clique em Avançadas. No campo JSON, adicione uma chave registry-mirrors com https://mirror.gcr.io como valor:

    {
      "registry-mirrors" : [
        "https://mirror.gcr.io"
      ]
    }
    
  4. Clique em Aplicar e reiniciar.

Para verificar se a cache está configurada corretamente, execute o seguinte comando:

docker system info

O resultado deve incluir Registry Mirrors e ser semelhante ao seguinte:

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

Extrair imagens em cache

O Artifact Registry adiciona imagens pedidas com frequência à cache para que fiquem disponíveis para pedidos futuros. Também remove periodicamente imagens que já não são pedidas.

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

  1. O daemon Docker verifica a cache do Artifact Registry e obtém as imagens, se existirem. Se a configuração do daemon incluir outros espelhos do Docker, o daemon verifica cada um por ordem de uma cópia em cache da imagem.
  2. Se a imagem ainda não for encontrada, o daemon do Docker obtém a imagem do repositório canónico no Docker Hub.

A obtenção de imagens em cache não é contabilizada para os limites de taxa do Docker Hub. No entanto, não existe garantia de que uma imagem específica permaneça em cache durante um período prolongado. Obtenha apenas imagens em cache no mirror.gcr.io configurando o daemon do Docker.

Para autenticar no Docker Hub imagens que não estão em cache no mirror.gcr.io, use repositórios remotos do Artifact Registry. Os repositórios remotos suportam a autenticação no Docker Hub. Recomendamos que se autentique no Docker Hub, mesmo que esteja a usar apenas imagens públicas, uma vez que aumenta o seu limite de taxa de transferência. Para mais informações sobre os limites de taxa de transferência do Docker Hub, consulte o limite de taxa do Docker Hub.

O que se segue?