Dockerの「port is already allocated」の対処
コンテナを起動しようとすると、こう止まる。
Error: Bind for 0.0.0.0:8080 failed: port is already allocated指定したポート(この例では8080)を、すでに別のプロセスかコンテナが使っている、という意味だ。同じポートは同時に1つしか使えない。
何が使っているか特定する
まず、動いているコンテナを見る。
docker psコンテナでなくホストのプロセスが使っている場合は、こちらで特定する。
lsof -i :8080対処1:競合しているコンテナを止める
不要なコンテナが掴んでいるなら止める。
docker stop <コンテナID>対処2:別のポートに割り当てる
使用中のポートを避けて、ホスト側を別の番号にする。
docker run -p 8081:80 myimage # ホスト8081 -> コンテナ80まとめ
- 原因は指定ポートが使用中
docker psとlsof -i :ポートで使用元を特定- 競合コンテナは
docker stopで止める - 避けたいなら
-p 別ポート:コンテナポートで割り当て直す