Masayan tech blog.

  1. ブログ記事一覧>
  2. Dockerでポート番号重複によるエラーを解消する方法

Dockerでポート番号重複によるエラーを解消する方法

公開日

前置き

Dockerを使用してサーバーを構築する際にホストOS側のポートが重複していると以下のようなエラーが出ます。

Bind for 0.0.0.0:8000 failed: port is already allocated

解消方法

例えば、Dockerを使用したアプリ開発のため、webサーバーをlocalhost:8000でホスト側のポートを指定しているとして、この状態で別のコンテナをlocalhost:8000でポートを指定して起動するとエラーが生じます。

ホスト側のポートは重複できないので、このような場合は、現在使用しているアプリのポート番号を変えてサーバーを再起動するか、現在起動しているコンテナのポート番号は変えず、新たに起動するコンテナを別のポート番号で起動するか、もしくは現在起動しているコンテナを停止し、ポートを閉じてしまうかのいずれかになります。

8000番を指定しているプロセスは以下コマンド実行し、PID列の番号を確認します。

lsof -wi tcp:8000

kill PID(今回は例として1079とします) の形式でコマンドを実行すると8000番を使用しているプロセスは終了するので、ポートの競合がなくなりエラーが解消されます。

kill 1079

まとめ

いかがでしたでしょうか。本記事ではDockerでポート番号重複によるエラーを解消する方法について紹介しています。