事象
Docker&仮想サーバー完全入門 Webクリエイター&エンジニアの作業がはかどる開発環境構築ガイド
上記でDockerの学習中、Flaskのコンテナを立ち上げる際に
コンテナの立ち上げはできるが”http://localhost:5000/” にアクセスしても
繋がらない事象が発生。
〜省略〜
[+] Running 2/3
✔ flask_app Built 0.0s
✔ Network flask_default Created 0.0s
⠋ Container flask-flask_app-1 Starting 0.1s
Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:5000 -> 127.0.0.1:0: listen tcp 0.0.0.0:5000: bind: address already in use
環境
端末 : MacBook Air 2025
OS : macOS Sequoia(v15.3)
解消方法(結論)
「AirPlayレシーバー」という機能が悪さをしている可能性
以下の設定を変更することによりflaskの起動を確認。
設定変更箇所
システム設定 > 一般 > AirDropとHandoff をクリック
AirPlay レシーバー がオンになっていた場合、オフにする
確認内容
該当ポートが使用しているプロセスを確認
“lsof”で5000番ポートを使用しているプロセスを探す
hoge@fuga ~ % lsof -i :5000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ControlCe 695 hoge 10u IPv4 0x2747130f931f8daa 0t0 TCP *:commplex-main (LISTEN)
ControlCe 695 hoge 11u IPv6 0x43d5656f20e43755 0t0 TCP *:commplex-main (LISTEN)
“ControlCe” というプロセスが動いていることを確認。
flaskではデフォルトで5000番ポートを使用するため、
これが原因で起動できていなさそう。
“kill”で該当プロセスを落としてみる
hoge@fuga ~ % kill 22374
hoge@fuga ~ % kill 22374
kill: kill 22374 failed: no such process
hoge@fuga ~ % lsof -i :5000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ControlCe 24869 hoge 11u IPv4 0x456221a0fc5c4c4 0t0 TCP *:commplex-main (LISTEN)
ControlCe 24869 hoge 12u IPv6 0x7e816d2ad7cac1a0 0t0 TCP *:commplex-main (LISTEN)
該当プロセスをkillしたが再度出てきてしまった。
“ControlCe”について
調べてみたところ、AirPlayレシーバーという機能で使用しているらしい。
特に使用する予定もないので、機能をオフにする。
設定方法
システム設定 > 一般 > AirDropとHandoff をクリック
AirPlay レシーバー がオンになっていた場合、オフにする
設定後
hoge@fuga flask % docker compose up -d
〜省略〜
✔ flask_app Built 0.0s
✔ Network flask_default Created 0.0s
✔ Container flask-flask_app-1 Started

参考URL
https://amzn.to/4j7v4Kr
コメント