
Estou tentando configurar o Harbour como um registro pull-through vinculado ao hub Docker.
Enquanto eu consigo extrair imagens prefixando-asde acordo com o documento, não consigo fazer funcionar usando o registry-mirrors
parâmetro daemon do Docker: comandos como docker pull mysql
ainda baixar as camadas do docker.io.
Configuração do cliente
Versão do Docker: 20.10.8
/etc/docker/daemon.log:
{
"registry-mirrors": ["https://harbor.example.com"]
}
Configuração do porto
- Porto v2.3.1
- Instalado usando
docker-compose
- Na interface do Porto:
- Registros \ Novo endpoint: endpoint criado com "Docker Hub" como provedor.
- Projetos \ Novo projeto: Defina o nome como
proxy
, marque "Proxy Cache" e selecione o endpoint acima.
Teste 1: Extraia imagem com prefixo:
$ docker pull harbor.example.com/proxy/library/mysql
Using default tag: latest
latest: Pulling from proxy/library/mysql
33847f680f63: Already exists
5cb67864e624: Already exists
1a2b594783f5: Already exists
b30e406dd925: Already exists
48901e306e4c: Already exists
603d2b7147fd: Already exists
802aa684c1c4: Already exists
715d3c143a06: Pull complete
6978e1b7a511: Pull complete
f0d78b0ac1be: Pull complete
35a94d251ed1: Pull complete
36f75719b1a9: Pull complete
Digest: sha256:8b928a5117cf5c2238c7a09cd28c2e801ac98f91c3f8203a8938ae51f14700fd
Status: Downloaded newer image for harbor.example.com/proxy/library/mysql:latest
harbor.example.com/proxy/library/mysql:latest
A penúltima linha mostra que isso foi retirado do meu repositório conforme esperado.
Teste 2: Extraia imagem sem prefixo:
$ docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
33847f680f63: Already exists
5cb67864e624: Already exists
1a2b594783f5: Already exists
b30e406dd925: Already exists
48901e306e4c: Already exists
603d2b7147fd: Already exists
802aa684c1c4: Already exists
715d3c143a06: Pull complete
6978e1b7a511: Pull complete
f0d78b0ac1be: Pull complete
35a94d251ed1: Pull complete
36f75719b1a9: Pull complete
Digest: sha256:8b928a5117cf5c2238c7a09cd28c2e801ac98f91c3f8203a8938ae51f14700fd
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest
Isso vem do docker.io em vez de retirá-lo do meu registro! Após o comando acima, também vejo esta linha em /var/log/syslog:
Aug 11 15:54:57 myhost dockerd[12663]: time="2021-08-11T15:54:57.229516951+02:00" level=info msg="Attempting next endpoint for pull after error: unknown: repository library/mysql not found"
Como isso sugere que o Docker tentou primeiro meu registro, suspeito que o problema esteja na configuração do registro e não no Docker. Talvez nas convenções de caminho usadas por Harbor...
Alguém conseguiu extrair imagens de um cache do Harbour sem precisar prefixá-las manualmente?