放浪軍師のアプリ開発局

VTuberみたいなアプリケーション夏狂乱など、自由気ままにアプリを開発したりしています。他にもいろいろやってます。尚、このブログはわからないところを頑張って解決するブログであるため、正しい保証がありません。ご注意ください。

何もしてないのに Docker が壊れた (failed: port is already allocated)

こんにちは。実は最近、新しく個人で AI を使った Web サービスをリリースしようかなと企んで頑張っている放浪軍師です。今回は備忘録です。

何もしてないのに Docker が壊れた (failed: port is already allocated)

何もしてないのに Docker が壊れる事。よくありますよね!先日、コーディング中なんか調子が悪かったので、docker compose restart をやってみると以下メッセージが発生。

Error response from daemon: driver failed programming external connectivity on endpoint container1 (-----): Bind for 0.0.0.0:4443 failed: port is already allocated

ふむふむ、ポートが既に既に割り当てられている。と。。。んなわけあるかーい!今の今まで普通に使えてたポートなのになんで他で使われてるなんてことになるんじゃーい!って事ですよ。

一応使用中のポートを調べてみましたが該当ポートは使用中ではありませんでした。まぁ恐らくなんか調子が悪くて、半端に停止してしまったのが邪魔しているんだと推測されます。

ただこやつが結構強情で、コンテナなどを一旦全削除して作り直したりしても同じエラーがでます。なんやかんや試してみて、結局以下の手法で解決しました。

解決方法

  1. コンテナを全部消す(不要かもしれんが一応 images や volumes も消す)

  2. OS再起動(たぶんこの時に宙に浮いた port 使用情報がリセットされるので必須)

  3. docker compose build --no-cache

  4. docker compose up -d

まとめ

何もしてないのに壊れることはあるよ!