Машина, которая достигает внешнего реестра через прокси, может скопировать образ во внутренний реестр с помощью Skopeo. Настройте процесс, выполняющий копирование:

export HTTP_PROXY=http://proxy.example.net:8080
export HTTPS_PROXY=http://proxy.example.net:8080
export NO_PROXY=registry.internal.example

skopeo copy --all \
  docker://registry.public.example/team/image:stable \
  docker://registry.internal.example/team/image:stable

Имена реестров и ссылка на образ — примеры. Источник проходит через прокси; внутренний реестр сопоставляется записью обхода. Для разрешённого копирования из публичного источника без настроенных учётных данных прокси список HTTP-прокси может предоставить подходящие HTTP-эндпоинты, пока этот внутренний обход остаётся на месте. Сопоставьте эту запись с именем хоста назначения, которое команда действительно использует.

docker:// — это имя транспорта образов для ссылок на реестры. Это не означает, что копирование делегируется локальному демону Docker. HTTP-транспорт реестра Skopeo использует обнаружение прокси из окружения, если встраиваемое приложение явно не задаёт другой URL прокси.

--all важен, когда ссылка источника выбирает многоплатформенный индекс образов или список манифестов: он требует скопировать все указанные образы. Без этого выбора копия может выбрать образ для текущей платформы вместо воспроизведения полной многоплатформенной ссылки.

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

Похожие статьи