内容
ゲストOS上で動いているWebサーバに対してポートフォワーディングを用いてホストOSからアクセスしたいです。
具体的にはゲストOSの上で動くDockerコンテナに対してアクセスするのですが、そもそもVirtualBoxが80と443のポートを掴むことが出来ません。
sudo lsof -i -P | grep "LISTEN"
を実行してみるとポートフォワーディングしている他のポート(例えば2222を22へ転送)はちゃんと取れていて、実際にゲストOSへsshすることは可能です。しかし、80と443だけこの一覧に表示されません。VirtualBoxのUIから設定を行う以外にも、コマンドからも試してみましたが同様でした。また、設定時にエラーは出ません。
VBoxManage controlvm "vm" natpf1 "SSH,tcp,127.0.0.1,2222,,22" VBoxManage controlvm "vm" natpf1 "HTTP,tcp,127.0.0.1,80,,80" VBoxManage controlvm "vm" natpf1 "HTTPS,tcp,127.0.0.1,443,,443"
ホスト側でdocker run -d -p 80:80 nginx:latest
のように適当にポートを専有するコマンドを実行してみた所、こちらは普通にポートを掴むことが可能でlocalhostへアクセスするとWelcome to nginx
が表示されます。
原因は何でしょうか?
よろしくお願い致します。
ホストOS
- macOS Mojave 10.14.3
- VirtualBox 5.2.26(6.0.4でも試しましたが同様でした)
- Docker Desktop 2.0.0.2
ゲストOS
- Ubuntu Server 18.04
- Docker 18.09.2