こんにちは。実は最近、新しく個人で 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
ふむふむ、ポートが既に既に割り当てられている。と。。。んなわけあるかーい!今の今まで普通に使えてたポートなのになんで他で使われてるなんてことになるんじゃーい!って事ですよ。
一応使用中のポートを調べてみましたが該当ポートは使用中ではありませんでした。まぁ恐らくなんか調子が悪くて、半端に停止してしまったのが邪魔しているんだと推測されます。
ただこやつが結構強情で、コンテナなどを一旦全削除して作り直したりしても同じエラーがでます。なんやかんや試してみて、結局以下の手法で解決しました。
解決方法
コンテナを全部消す(不要かもしれんが一応 images や volumes も消す)
OS再起動(たぶんこの時に宙に浮いた port 使用情報がリセットされるので必須)
docker compose build --no-cache
docker compose up -d
まとめ
何もしてないのに壊れることはあるよ!