Docker SpringBoot プロジェクトがローカル データベースに接続する

ローカル コンテナーで実行されているアプリケーションがローカル マシン上の PostgreSQL データベースに接続できるようにするには、次の手順を実行します。

  1. PostgreSQL データベースがこのマシンにインストールされ、実行されていることを確認してください。psql コマンド ライン ツールまたはその他のビジュアル ツールを使用して、ローカル マシン上のデータベースを管理し、データベースに接続できます。

  2. アプリケーションの構成ファイルで、ローカル マシン上の PostgreSQL データベースに接続するようにデータベース接続を構成します。通常、次の接続パラメータを指定する必要があります。

    • ホスト名: 通常localhostは または で127.0.0.1、ローカル マシンを示します。
    • ポート番号: デフォルトでは、PostgreSQL はポート 5432 を使用します。
    • データベース名: 接続するデータベースの名前。
    • ユーザー名とパスワード: データベースへの接続に使用されるユーザー名とパスワード。

    たとえば、アプリケーション構成ファイル内のデータベース接続構成は次のようになります。

    spring.datasource.url=jdbc:postgresql://localhost:5432/mydatabase
    spring.datasource.username=myuser
    spring.datasource.password=mypassword
    

    mydatabase上記の構成内の部分を、接続する実際のデータベース名myusermypassword実際のデータベースのユーザー名とパスワードに必ず置き換えてください。

  3. ローカルで実行されている Docker コンテナーで、アプリケーションがローカル マシン上の PostgreSQL データベースにアクセスできることを確認します。デフォルトでは、Docker コンテナはローカル マシンとネットワークを共有し、localhostまたは を介し​​て127.0.0.1ローカル マシン上のサービスにアクセスできます。したがって、コンテナー内でもネイティブと同じデータベース接続構成を使用できます。

    コンテナでポート マッピングが使用されている場合 (たとえば、コンテナのポート 8080 がローカル マシンのポート 8080 にマップされている場合)、データベース接続構成のホスト名をローカル マシンの IP アドレスに変更する必要があります。docker.for.mac.host.internalまたは をホスト名として使用できますdocker.for.win.localhost。これらは、サービスにネイティブにアクセスするために Mac および Windows 上の Docker Desktop によって提供される特別なホスト名です。

    たとえば、コンテナでポート マッピングが使用されており、コンテナの 8080 ポートがローカル マシンの 8080 ポートにマップされている場合、アプリケーション構成ファイル内のデータベース接続構成は次のようになります。

    spring.datasource.url=jdbc:postgresql://docker.for.mac.host.internal:5432/mydatabase
    spring.datasource.username=myuser
    spring.datasource.password=mypassword
    

    mydatabase上記の構成内の部分を、接続する実際のデータベース名myusermypassword実際のデータベースのユーザー名とパスワードに必ず置き換えてください。

上記の手順により、ローカル コンテナ内のアプリケーションはローカル マシン上の PostgreSQL データベースに接続できるようになります。データベース接続が正しく構成されており、ローカル マシン上で PostgreSQL データベースが実行されていることを確認してください。

おすすめ

転載: blog.csdn.net/xiaohuihui1400/article/details/133359872