🐳

Dockerで「 Ports are not available ... address already in use」が出た時の対処法

2024/01/26に公開

はじめに

本記事は以下記事の内容と同じです。
https://qiita.com/nkkn_prog/items/46bfb86ba8a2e0898193


エラー

Dockerでコンテナを立ち上げようとすると以下のエラーが出て、起動ができなかった。
5432のポートが既に他で使われていることが原因。

Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:5432 -> 0.0.0.0:0: listen tcp 0.0.0.0:5432: bind: address already in use

解決策

①ポートを占有しているアプリケーションを特定する

lsof -i :5432

何も出ない場合、頭にsudoをつけて再実行。そうするとパスワードが要求されるので、PCログイン時に使っているパスワードを入力。

sudo lsof -i :5432
password:

②アプリ特定後、PIDをKillする

COMMAND  PID     USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
postgres 141 postgres    7u  IPv6 0xc658af2b5620d7cf      0t0  TCP *:postgresql (LISTEN)
postgres 141 postgres    8u  IPv4 0xc658af268ae07bdf      0t0  TCP *:postgresql (LISTEN)

ポートを利用しているアプリケーションを特定したら、以下の様にPID番号を入力して、killしてあげる。

sudo kill 141

再度以下を行って、何も表示されなければOK

sudo lsof -i :5432

Discussion