0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Error】他のアプリが同じポートを使用していることで起こるエラー`Error response from daemon`

0
Last updated at Posted at 2024-10-15

はじめに

環境構築の過程で下記コマンドを実行したときに発生したエラーについて、同じことが起こった場合、わたわたしないためにも記事に残しておこうと思います。

環境

  • Windows, WSL
  • Docker
  • Ruby 3.2.3
  • Rails 7.1.3

1:入力コマンドとログ

docker compose run --rm web gem install rails

👇以下ログ
[+] Running 0/1
 ⠹ Container hogehoge_app-db-1  Starting                                                    0.2s 
Error response from daemon: driver failed programming external connectivity on endpoint hogehoge_app-db-1 (a1bc2877a2b5722de9e46717b1e2cce05ccb2679f6abf470bac3cebb3cce3744): Bind for 0.0.0.0:5432 failed: port is already allocated

2:エラー内容は?

hogehoge_app-db-1コンテナが使用しようとしているポート 5432 がすでに他のプロセスやコンテナによって使用されているため、起動に失敗しているそうです。5432 はPostgreSQLデータベースのデフォルトポートで、他のPostgreSQLインスタンスや他のアプリケーションがこのポートを使っている可能性があるそうです。

・・・データベースごとに、デフォルトのポートというものが存在していることすら知らなかったです👇以下画像参照

Image from Gyazo

3:解決策

3-1:現在ポート5432を使用しているプロセスを確認・停止する

他のPostgreSQLや関連プロセスがポート 5432 を使用している場合、これを確認し、必要に応じて停止する

# ポートを使用しているプロセスを確認
sudo lsof -i :5432

上記コマンドはポート 5432 を使用しているプロセスを表示します。
出力に対して確認した後、そのプロセスを停止します。
プロセスIDは、lsofコマンドの結果から取得できます。

# プロセスを停止
sudo kill -9 <プロセスID>

3-2:Dockerコンテナの設定を変更して別のポートを使用する

PostgreSQLがすでに 5432 を使用している場合、別のポートに変更するのも一つの方法としてあげられます。docker-compose.ymlで5432以外のポートを指定します。

services:
  db:
    image: postgres
    ports:
      - "5433:5432"  # 5433に変更

これで、ホスト側のポート 5433 を使用し、コンテナ内のPostgreSQLは引き続き 5432 を使用します。

3-3:既存のDockerコンテナを停止・削除する

もし他のDockerコンテナがポート 5432 を使用している場合、そのコンテナを停止または削除することもできるそうです。

docker ps  # 実行中のコンテナを確認
docker stop <コンテナID>  # 該当するコンテナを停止
docker rm <コンテナID>  # 必要に応じて削除

さいごにまとめ

私は解決方法3-3を実行しました。
最近はコマンドを実行するごとにログをちゃんと?確認できるようになったことが過去の私と比べ成長したなと感じています。
まだまだ読み解く力は微々たるものですが継続学習頑張ります。
今回の記事が何か参考になれば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?