`registry-mirrors` с Harbor в качестве кэша реестра для извлечения

`registry-mirrors` с Harbor в качестве кэша реестра для извлечения

Я пытаюсь настроить Harbor как сквозной реестр, связанный с Docker Hub.

В то время как мне удается извлекать изображения, добавляя к ним префиксысогласно документу, я не могу заставить его работать с помощью registry-mirrorsпараметра демона Docker: Такие команды, как docker pull mysqlпо-прежнему загружают слои с docker.io.

Конфигурация клиента

Версия докера: 20.10.8

/etc/docker/daemon.log:

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

Конфигурация гавани

  • Гавань v2.3.1
  • Установлено с помощьюdocker-compose
  • В интерфейсе гавани:
    • Реестры \ Новая конечная точка: Создана конечная точка с «Docker Hub» в качестве поставщика.
    • Проекты \ Новый проект: задайте имя proxy, отметьте «Кэш прокси-сервера» и выберите указанную выше конечную точку.

Тест 1: Извлеките изображение с префиксом:

$ 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

Вторая последняя строка показывает, что это взято из моего репозитория, как и ожидалось.

Тест 2: Извлечь изображение без префикса:

$ 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

Это взято из docker.io, а не из моего реестра! После команды выше я также вижу эту строку в /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"

Поскольку это предполагает, что Docker сначала попробовал мой реестр, я подозреваю, что проблема в конфигурации реестра, а не в Docker. Возможно, в соглашениях о путях, используемых Harbor...

Удалось ли кому-нибудь извлечь изображения из кэша Harbor без необходимости вручную добавлять к ним префиксы?

Связанный контент