外部 HTTP プロキシは Docker の api サービス名を知る必要はありません。http://api:8080/ ではプロキシが先の接続を開くため、アプリコンテナ内での名前解決の成功はプロキシ側の DNS ビューを証明しません。

意図した直接アクセスには、そのコンテナの環境に例外を追加します。

environment:
  http_proxy: http://proxy.example:8080
  https_proxy: http://proxy.example:8080
  no_proxy: api

api への直接リクエストはコンテナのルートと組み込みリゾルバーを使用します。2 つのコンテナには引き続きユーザー定義の共有ネットワークが必要で、サービスは 8080 で待ち受ける必要があります。対象となる外部リクエストはプロキシを維持します。これらの公開宛先が公開仲介者を使用できる場合、HTTP プロキシ一覧がアカウント不要のプロキシ URL の候補を提供します。api は直接例外に残してください。

再作成したコンテナに予期しない変数が残る場合は、Docker クライアントの config.json の proxies セクションを確認してください。環境値が注入される可能性があります。意図したエントリを変更し、通常の流れで影響を受けたコンテナを再作成し、無関係な設定は保持してください。

関連記事