まえがき
Dockerが立ち上がらないポート5432エラーで私自身が苦しんだので今回の解決方法を見てあなたの役に立てたらいいなと思います。それでは行きましょう!
動作環境
macbook 13.4.1 (c)(22F770820d)
Rails 7.0.4.3
ruby 3.1.3p185
psql (PostgreSQL) 14.8 (Homebrew)
もくじ
1.Docker5432ポートエラーとは?
2.原因とその対策
3.その他の対策
1.Docker5432ポートエラーとは?
Dockerを使ってPostgreSQLを起動しようとすると、以下のようなエラーが発生することがあります。
Couldn't connect to Docker daemon at http+docker://localhost - is it running?
If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
dial tcp 127.0.0.1:5432: connect: connection refused
これは、ポート5432がすでに使用されているため、DockerがPostgreSQLを起動できないためです。
簡単に伝えると、港にあるコンテナが積まれた5432の船がすでに使用されているから空かないと使えないよと言われているということです。
2.原因とその対策
原因1:ローカルのPostgreSQLが起動している
ローカルのPostgreSQLとDockerで使うデータベースは同時に起動できないような仕組みになっています。なので、Dockerを立ち上げるためのPostgreSQLを起動する前にローカルのPostgreSQLを停止させる必要があります。
まずは、ローカルのデータベースの起動状況を確認するコマンドを実行し、すべてnoneになっていれば停止しています。
brew services list
もしnoneになっていなければsql停止コマンドを実行し停止させます。
brew services stop postgresql@<バージョン番号>
その後docker compose up -d
でDockerを立ち上げてみます。
原因2:すでにポート5432が使用されている
すでにポート5432が使用されている場合、空ける必要があります。
まずは、ポート5432を使用しているプロセスを確認するコマンドを実行します。
lsof -i :5432
出力されたらプロセスを切るコマンドを実行しすべてのプロセスを切ります。
kill <プロセス番号>
もしプロセスが出力されなかった場合、sudoコマンドも試してみます。
sudo lsof -i :5432
それで出力されたらsudoコマンドでプロセスを切ります。
sudo kill <プロセス番号>
その後docker compose up -d
でDockerを立ち上げてみます。
3.その他の対策
- Dockerを再起動する
- Dockerコンテナを再作成する
- MacBookを再起動
- PostgreSQLを再インストール
これらの方法でも解決しない場合は、Docker Desktopを再インストールすることも考慮してください。
Dockerを使ってPostgreSQLを起動する際には、このようなエラーが発生することがありますが、原因を正しく特定し、適切な対策を取ることで解決することができます。
あとがき
いかがだったでしょうか。このガイドがDockerポート5432エラーの問題解決にお役に立てば幸いです。Dockerを起動する前に、常にそのポートを使用しているプロセスがないか確認し、停止することを忘れないでください。もしうまくいかなかったら、Dockerを再起動したり、Docker Desktopを再インストールしてみてください。正しいトラブルシューティングを行えば、すぐにDockerでPostgreSQLを起動できるようになるはずです。楽しいコーディングライフを!
おまけ
唐突ですが弊社のご紹介もさせてください。
▼ コーポレートサイト
https://prum.jp/
▼ Wantedly求人
https://www.wantedly.com/projects/626662
弊社メンバーは学習した内容を日々Qiitaの記事にアウトプットしております。
弊社にご興味のある方、まずは求人を見てみてください!
ご応募お待ちしておりますー!