2022-09-01現在、最新の WSL2 ではこのような設定は不要と思われます (多分)
WSL2 では localhost でサーバを公開するのが簡単になった らしいというので設定してみたメモ。
環境
- Windows10 Pro Insider Preview (バージョン:
2004
, OSビルド:19536.1000
) - WSL2(
Ubuntu-18.04
) - Docker
- Desktop
2.1.7.0(41536)
(Channeledge
) - Engine
19.03.5
- Desktop
手順
Windows 側に c:\Users\<ユーザ名>\.wslconfig
というファイルを用意し以下のように記述する。
localhostForwarding=True
以上
試してみる
Docker で nginx を起動
$ docker run --name hogehoge -p 8080:80 nginx
Windows 側から http://localhost:8080
でアクセスして以下のように表示されたらOK
localhost につながらなくなる場合がある? (追記:2021.05.07)
原因はよくわかっていないですが、 Windows のシャットダウンして起動し直した後、 localhost につながらなくなる現象が発生することがわかりました。
その場合は「再起動」すると問題が解決します。(「シャットダウン」の後電源ONではなく「再起動」であることに注意)
ググると「高速スタートアップ機能をオフにすれば良い」的な記事が見つかったりしますが、機能をオフにするまでもなく「再起動」の操作では「高速スタートアップ」は行われないため「再起動」で問題を解消することができます。
MSの公式アカウントも Tweet しているように Windows10 において「再起動」と「シャットダウンからの起動し直し」は異なる動作であり、トラブルシュートの手段として「再起動」を勧めています。
この問題に関する Github Issue は以下のようですが、すでに close されているように見えます。
スレッドを読みきれてなくて、この問題が根本解決したのかどうかパッチがリリースされるのかどうか読み取れていません。