Внешнему 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, который может внедрять значения окружения. Измените нужную запись и пересоздайте затронутые контейнеры обычным путём, сохранив несвязанную конфигурацию.

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