🐳
同一LAN上のコンテナWebアプリへアクセス:Win11+WSL2+Docker
障害概要
- 同一LAN上にあるコンテナで稼働しているWebアプリにアクセスできない。
前提条件
- OS:Windows11
- 仮想環境:WSL2
- コンテナアプリ:Docker Desktop
- Webアプリフレームワーク:Next.js
対処方法
ファイアウォールのポート許可
- Windows Defenderファイアウォールで指定ポートでのアクセスを許可。
ポートフォワーディング設定
- PowerShellのターミナルを管理者権限で起動し、以下のコマンドで状況を確認。
netsh interface portproxy show v4tov4
- 出力結果が以下のようにならず、空文字であれば後述のコマンドでポートフォワーディングの設定をする。
Listen on ipv4: Connect to ipv4:
Address Port Address Port
--------------- ---------- --------------- ----------
0.0.0.0 3000 127.0.0.1 3000
- PowerShellのターミナルを管理者権限で起動し、以下を実行。
netsh interface portproxy add v4tov4 listenport=3000 listenaddress=0.0.0.0 connectport=3000 connectaddress=127.0.0.1
- ipconfigでコンテナ端末のLAN上のIPアドレスを確認し、そのアドレスと指定ポートでアクセス。
3000ポートで起動しなくなる
上記設定後、Next.jsが3000ポートで起動せず、ランダムポートでの起動になることがある。
以下で一度、ポートの予約を削除
netsh interface portproxy delete v4tov4 listenport=3000 listenaddress=0.0.0.0
Discussion