Bind for 0.0.0.0:PORT failed: port is already allocated
Dockerコンテナのポートが既に使用されている場合に発生するエラー
概要
Bind for 0.0.0.0:PORT failed: port is already allocated は、Dockerコンテナを起動する際に、指定したポートが既に他のプロセスやコンテナで使用されている場合に発生するエラーです。
エラーメッセージ
Error response from daemon: driver failed programming external connectivity on endpoint container_name: Bind for 0.0.0.0:3000 failed: port is already allocated
Error starting userland proxy: listen tcp4 0.0.0.0:80: bind: address already in use
原因
- 他のコンテナが使用中: 同じポートで別のコンテナが起動している
- ホストのプロセスが使用中: ホストOSのサービスがポートを使用
- コンテナが停止していない: 前回のコンテナが残っている
- Docker Compose の重複: 複数のプロジェクトが同じポートを使用
解決策
1. ポートを使用しているプロセスを特定
| |
2. 既存のコンテナを停止・削除
| |
3. Docker Compose でコンテナを停止
| |
4. 別のポートを使用
| |
| |
5. ホストのサービスを停止
| |
6. 動的ポート割り当て
| |
7. ポート範囲の指定
| |
8. Docker ネットワークの確認
| |
9. WSL2/Docker Desktop の問題
| |
Docker Compose での対処
| |
| |
全コンテナをクリーンアップ
| |
デバッグのコツ
コンテナのポート確認
| |
接続テスト
| |
Docker の他のエラー
この記事は役に立ちましたか?