同じエンドポイントが curl で動くのに proxy: unknown scheme: http が出ると、奇妙に見えます。エンドポイント自体は正常かもしれません。別のプログラムがその変数を解釈しているのです。

環境変数の名前は慣習であり、汎用のネットワーク API ではありません。Go の golang.org/x/net/proxy パッケージは SOCKS 向けの URL 処理を持っています。そのパーサーを使う利用側は、完全な HTTP クライアントなら他所で対応する HTTP スキームを拒否することがあります。

エラーを出しているコンポーネントと、それが読む変数を特定します。そのバージョンと文書化されたスキームを確認してください。相手側のサービスが実際に SOCKS5 を話さない限り、http:// を socks5:// に変えないでください。この利用側が SOCKS5 を必要とし、公開経路が許される場合は、SOCKS5 プロキシ一覧がそのプロトコルの実際のエンドポイントを提供します。他のクライアントが必要とする HTTP 経路は別に保ってください。

古い Docker Toolbox の報告は、特定の歴史的な実装に関するものでした。それは現代の Docker インストールをダウングレードする理由にはなりません。現在の Docker デーモンの HTTP プロキシ設定には、独自の文書化されたインターフェースがあります。

無関係な継承された ALL_PROXY の値が原因なら、意図したプロセスの範囲でそれを削除するか上書きします。他のクライアントが必要とする HTTP プロキシ設定は維持してください。両方の値を持つ単一の環境では、個々のアプリケーションが単独では決して見せない差異が表面化することがあります。

関連記事