O Container Registry armazena em cache 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.
As imagens em cache em mirror.gcr.io
são:
- Armazenados num repositório gerido pela Google.
- Mais isolado de indisponibilidades do Docker Hub.
- Integração fácil com o 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 Container Registry:
CLI
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, transmita o nome do anfitrião do Container 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"
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
- Abra o menu Preferências do Docker.
- Clique em Daemon.
Clique em Avançadas. No campo JSON, adicione uma chave
registry-mirrors
comhttps://mirror.gcr.io
como valor:{ "registry-mirrors" : [ "https://mirror.gcr.io" ] }
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 Container 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 Container Registry, o Docker executa os seguintes passos quando extrai uma imagem pública do Docker Hub com um comando docker pull
:
- O daemon Docker verifica a cache do Container 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.
- 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. Um pedido de obtenção direta de
mirror.gcr.io
falha se não existir uma cópia em cache da imagem.
O que se segue?
- Pode criar os seus próprios espelhos Docker locais para colocar imagens em cache. Para ver detalhes, consulte a documentação do Docker.
- Leia a documentação do Docker Hub.