(я использую Docker для Mac версии 2.0.0.3 (31259), у которого есть docker-engine 18.09.2.)
Я пытаюсь сделать это:
- Запустите процесс Docker-Registry непосредственно на моем Mac через порт 8080 (на самом деле это не Docker-Registry, а что-то похожее на реестр, поэтому это не имеет значения) без HTTPS
- Запустите mitmproxy на моем Mac напрямую через порт 5000 (для перехвата запросов)
- настроить механизм Docker для использования mitmproxy, чтобы я мог отслеживать запросы
- , инициировать
docker pull
в моем локальном реестрепоэтому вызывает некоторые запросы в моем реестре, которые я могу отслеживать на mitmproxy.
Ситуация 1: прокси-сервер не настроен
Итак, как я уже говорил, у меня есть сервер, которыйимитирует API-интерфейс docker-registry v2, работающий непосредственно на моем MacOS через порт 8080. Поэтому я добавил host.docker.internal:8080
в качестве небезопасного реестра:
Все работает (Docker-engine может ударитьмой локальный реестр) хорошо, если я не установил прокси для докег-двигатель.Например, я могу сделать docker pull host.docker.internal:8080/busybox
, и запросы приходят к моему прокси:
Ситуация 2: установить прокси для движка Docker, получить изображение из узла докера
Когда я указываю механизм докера на mitmproxy (host.docker.internal:5000
) и выполняю docker pull library/mysql
, он тоже отлично работает (я вижу запросы к index.docker.io)
Ситуация 3: установить прокси-сервер для движка докера, вытянуть изображение из концентратора докера
Поэтому, когда я объединяю Ситуацию № 1 + № 2, котораяуказав docker-engine на mitmproxy на моем ноутбуке в качестве прокси и затем пытаясь использовать docker pull host.docker.internal:8080/busybox
, который работал раньше, сбой :
Подключение к серверу ('host.docker.internal ', 8080) не удалось: Ошибка подключения к «host.docker.internal»: [Errno 8] указано ни имя, ни имя сервера, либо неизвестно
Ошибка моего прокси в том, что он не может найти host.docker.internal
.Я не могу сказать, так ли это, потому что mitmproxy работает на моей операционной системе Mac (а не внутри виртуальной машины док-станции) и поэтому не может разрешить хост.
Я в основном не могу использовать mitmproxy(на моей операционной системе Mac) для отслеживания запросов механизма докера, а также для одновременного запуска реестра (на моей операционной системе Mac).
Я также пытался переместить реестр в контейнер и изменилимя хоста на gateway.docker.internal
, но там тоже не повезло.
Есть идеи как этого добиться?