サマリ
本記事では、WSL2 + Docker Desktop環境で発生したリバースプロキシの接続問題について解説します。NginxコンテナとWebアプリケーションコンテナ間の通信が突然502エラーを返すようになった問題の原因と解決方法を紹介します。特に、Windows 11のWSL2ミラーモードネットワーク機能が関係する問題について詳しく説明します。
本文
問題の概要
WSL2 + DockerDesktop環境で開発中、突然リバースプロキシが502エラーを返すようになり、バックエンドへの接続ができなくなりました。この問題は前日まで正常に動作していた環境で発生しました。
環境構成
- Windows 11 23H2
- Docker Desktop v4.41.2(問題発生時)
- WSL2上で動作するDockerコンテナ
- リバースプロキシ: Nginxコンテナ
- バックエンド: Webアプリケーションコンテナ
問題の詳細
以下のような状況が確認されました:
- WebアプリケーションコンテナからNginxコンテナへのcurl接続は正常
- Nginxコンテナのアクセスログには接続記録が出力される
- WSLやWindowsからブラウザでアクセスすると502エラー。このときNginxコンテナのコンソールログに変化なし
原因
問題の原因は、WSLのネットワーク設定に関連していました。具体的には、Windows 11 22H2で導入されたWSL2ミラーモードの設定が関係していました。
解決手順
- Windowsのユーザーディレクトリ(C:\Users[ユーザー名])に.wslconfigファイルを作成
[wsl2]
networkingMode=mirrored
- WSLの再起動
wsl --shutdown
wsl
結論
この問題は、Windows 11のWSL2ミラーモードネットワーク機能の設定が原因で発生しました。
直近のアップデート作業から考えると、Docker Desktop v4.41.2へのアップデートやWindows Updateがトリガーとなった可能性がありますが、具体的な因果関係は不明です。
Docker Desktop v4.41.2にはネットワーク関連の既知の問題が報告されていましたが、v4.40へのダウングレードでは問題は解決しませんでした。最終的にはWSL2のネットワーク設定を変更することで解決できました。
参考
- Docker for Windows Issue #14801: Upgraded to wsl2 2.5.7.0 and Docker desktop for Windows 4.41.2 no longer starts
- wooooo (2025) Apple Silicon Mac上でDocker Desktopのアンインストールに四苦八苦した話 Qiita
- hanzzoo (2024) Nginx on Dockerでリバースプロキシが動かない時のチェックリスト Zenn
- Ajeet Singh Raina (2024) WSL Mirrored Mode Networking in Docker Desktop 4.26.0 Dev.to