phpのlaravelプロジェクトをやり、sail upコマンドより、立ち上げたら、下記のエラーが発生しました。
理由としては、Windowsにて管理されるポート番号を使うからで、回避方法はポート番号を変更することにより、
簡単に回避はできま。
もしくは、Windowsにてポートを管理するサービスを停止する方法もありました。
Error response from daemon: Ports are not available: listen tcp 0.0.0.0:80: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
しかしながら、セキュリティー面でやりたくないと思って、探してみたら、ライブラリとして、基本提供はしていることがわかりました。
開発者がどうしても、Windowsにてポートを管理されたくない時のためですかね。(笑)
コード: https://github.com/heedaily/ExcludedPortRange
プログラム: https://drive.google.com/file/d/1eVMsnv9U7kHJdAugcOkvCS-BvY9u9rjU/view?usp=sharing
.net 4.8を基盤にしてはますが、昔(?)から提供しているC++のライブラリを利用しているため、コードをダウンロードして、プレームワークは必要に応じて変更して、再ビルドしても良いかと思っています。
プログラムを実行する時は、必ず管理者権限にて実行してください。
< 各項目の説明 >
・Type:除外したいポートのサービスタイプを選べます。
・Start Port:制御するポートの始まり
・End Port:制御するポートの終わり
・Delete Exclude:Windowsにてポートを管理しないようにする。
・Create Exclude:Windowsにてポートを管理するようにする。
・Confirm Command:実行確認コマンド
タイプを選択して、制御したいポート番号の範囲をStart PortとEnd Portにて記載してください。
例えば、80ポートのみだったら、両方とも80を入れて、80から90番までの場合は、Start Portには80をEnd Portには90を入れてください。
その後、Windowsにてポート管理をしないようにしたい場合は、Delete Excludeを押下して、
管理されたい場合は、Create Excludeを押下してください。
ボタンを押下する前後にて該当確認コマンドをコマンドプロンプトから実行して、確認して見てください。
netsh int ipv4 show excludedportrange protocol=tcp
netsh int ipv4 show excludedportrange protocol=udp
Windowsにてポートを管理しないことはセキュリティー上、よろしくないので、ポート除外の必要が終わったら、元に戻しましょう。
使っているプログラムがあると、戻されないので、ご注意ください。