`registry-mirrors` con Harbour como caché de registro extraíble

`registry-mirrors` con Harbour como caché de registro extraíble

Estoy intentando configurar Harbour como un registro extraíble vinculado a Docker Hub.

Mientras logro extraer imágenes prefijándolassegún el documento, no puedo hacer que funcione usando el registry-mirrorsparámetro Docker Daemon: comandos como docker pull mysqltodavía descargar las capas desde docker.io.

Configuración del cliente

Versión de Docker: 20.10.8

/etc/docker/daemon.log:

{
  "registry-mirrors": ["https://harbor.example.com"]
}

Configuración del puerto

  • Puerto v2.3.1
  • Instalado usandodocker-compose
  • En la interfaz del puerto:
    • Registros\Nuevo endpoint: Endpoint creado con "Docker Hub" como proveedor.
    • Proyectos \ Nuevo proyecto: Establezca el nombre en proxy, marque "Proxy Cache" y seleccione el punto final anterior.

Prueba 1: extraer imagen con prefijo:

$ 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

La penúltima línea muestra que esto se extrajo de mi repositorio como se esperaba.

Prueba 2: extraer imagen sin prefijo:

$ 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

¡Esto proviene de docker.io en lugar de tomarlo de mi registro! Después del comando anterior, también veo esta línea en /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"

Dado que esto sugiere que Docker probó primero mi registro, sospecho que el problema está en la configuración del registro y no en Docker. Quizás en las convenciones de ruta utilizadas por Harbour...

¿Alguien ha logrado extraer imágenes de un caché de Harbour sin tener que anteponerlas manualmente?

información relacionada