
Ich versuche, Harbor als Pull-Through-Register zu konfigurieren, das mit dem Docker-Hub verknüpft ist.
Während ich es schaffe, Bilder durch Präfixierung zu ziehenlaut Dokument, ich kann es nicht zum Laufen bringen, indem ich den registry-mirrors
Docker-Daemon-Parameter verwende: Befehle wie docker pull mysql
laden die Ebenen immer noch von docker.io herunter.
Client-Konfiguration
Docker-Version: 20.10.8
/etc/docker/daemon.log:
{
"registry-mirrors": ["https://harbor.example.com"]
}
Hafenkonfiguration
- Hafen v2.3.1
- Installiert mit
docker-compose
- In der Harbor-Schnittstelle:
- Registrierungen \ Neuer Endpunkt: Endpunkt mit „Docker Hub“ als Anbieter erstellt.
- Projekte \ Neues Projekt: Name auf festlegen
proxy
, „Proxy-Cache“ aktivieren und den obigen Endpunkt auswählen.
Test 1: Bild mit Präfix abrufen:
$ 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
Die vorletzte Zeile zeigt, dass dies wie erwartet aus meinem Repo gezogen wird.
Test 2: Bild ohne Präfix ziehen:
$ 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
Dies kommt von docker.io, anstatt es aus meiner Registry zu nehmen! Nach dem obigen Befehl sehe ich auch diese Zeile in /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"
Da dies darauf hindeutet, dass Docker zuerst meine Registrierung ausprobiert hat, vermute ich, dass das Problem in der Konfiguration der Registrierung und nicht in Docker liegt. Vielleicht in den von Harbor verwendeten Pfadkonventionen ...
Hat es jemand geschafft, Bilder aus einem Harbor-Cache abzurufen, ohne sie manuell mit einem Präfix versehen zu müssen?