Hyper-Vのポート予約について
はじめに
Hyper-Vの使用方法とは関係ありません。Dockerを使用している最中に気づいた件です。
Hyper-Vがポート予約をしていることを今回初めて知りました。
Dockerで特定ポートを使用できない
ローカル環境のhttpサーバに8080を使うことはよくあると思いますが、以下のエラーで使用できないと出ていました。
Error response from daemon: Ports are not available: listen tcp 0.0.0.0:8080: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
他の用途で8080を使用している記憶はなかったのでいろいろ調べたところ、以下のリンクが見つかりました。
どうやらHyper-Vによってかなりの範囲が予約されているようだったので、stackoverflowに提示されている方法で調整したところ、無事8080ポートが使用できるようになりました。
Docker DesktopはWSL2 Backendで使用しており、Hyper-Vを久しく使っていないので無効化しておくとこういったことがなくなるかもしれませんが、いわゆる仮想マシンが欲しくなったときに不便なので悩ましいところです。