🐳

同一LAN上のコンテナWebアプリへアクセス:Win11+WSL2+Docker

に公開

障害概要

  • 同一LAN上にあるコンテナで稼働しているWebアプリにアクセスできない。

前提条件

  • OS:Windows11
  • 仮想環境:WSL2
  • コンテナアプリ:Docker Desktop
  • Webアプリフレームワーク:Next.js

対処方法

ファイアウォールのポート許可

  • Windows Defenderファイアウォールで指定ポートでのアクセスを許可。

https://www.fmworld.net/cs/azbyclub/qanavi/jsp/qacontents.jsp?PID=7510-8352

ポートフォワーディング設定

  • 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