DNS службы Docker и обход прокси с помощью no_proxy
Используйте no_proxy для нужной внутренней службы, когда внешний HTTP-прокси не может разрешить или достичь этой сети.
Внешнему HTTP-прокси не нужно знать имя службы api в Docker. Для http://api:8080/ прокси открывает следующее соединение, поэтому успешное разрешение имени внутри контейнера приложения не доказывает DNS-представление прокси.
Для нужного прямого доступа добавьте исключение в окружение этого контейнера:
environment:
http_proxy: http://proxy.example:8080
https_proxy: http://proxy.example:8080
no_proxy: apiПрямые запросы к api используют маршрут контейнера и встроенный резолвер. Обоим контейнерам по-прежнему нужна общая сеть, определённая пользователем, а служба должна слушать порт 8080. Подходящие внешние запросы сохраняют прокси. Если эти публичные назначения могут использовать публичного посредника, список HTTP-прокси предлагает кандидатов для URL прокси без учётной записи; оставьте api среди прямых исключений.
Если пересозданные контейнеры сохраняют неожиданные переменные, проверьте раздел config.json proxies клиента Docker, который может внедрять значения окружения. Измените нужную запись и пересоздайте затронутые контейнеры обычным путём, сохранив несвязанную конфигурацию.