
AWS インスタンスがあります。すべての受信トラフィックと送信トラフィックはすべてのポートで許可されています。
python3 -m http.server 8000
ホスト上で実行しますが、<hostIP>:8000
ホストマシンの外部からはアクセスできません。
ここで、docker run -di -p 8000:8000 ubuntu
同じホスト上で docker コンテナを実行します。
実行している Docker コンテナ内では、ホスト マシンの外部からpython3 -m http.server 8000
GET を実行できます。<hostIP>:8000
私にはこのことが理解できません。何が起こっているのか、何か考えはありますか?
PS: tcpdump を実行したところ、ホストは tcp SYN パケットを受信しているものの、SYNACK で応答していないことがわかりました。
追伸:lsof -Pi :8000
python3 13376 root 3u IPv4 71025 0t0 TCP *:8000 (LISTEN)
答え1
ufw
サービスはシステム上のすべてをブロックしていました。Docker はufw
適切に構成されていたため、すぐに動作していました。停止するufw
と、すべてが機能するようになりました。顔面を手で覆う瞬間です。