Docker コンテナーでデータベースを実行する
Docker を使用して、データベースをリモートサーバーであるかのようにコンテナーで実行し、アプリケーションがデータベースとどのように相互作用するかをテストできます。このチュートリアルでは、PostgreSQL サーバーで Docker コンテナーを実行し、IntelliJ IDEA を使用してそれに接続する方法について説明します。
データベース管理機能については、「データベースツールおよび SQL」を参照してください。
PostgreSQL サーバーイメージをプルする
サービスツールウィンドウで、Docker 接続を展開し、イメージノードを選択します。
プルするイメージフィールドで、
postgresの入力を開始し、必要なイメージリポジトリを選択します。例:postgresを選択して、デフォルトのpostgres:latestイメージをプルします。Ctrl+Enter を押して、Docker がイメージをプルするまで待ちます。

PostgreSQL サーバーイメージからコンテナーを実行する
イメージノードを展開し、PostgreSQL サーバーイメージを選択して、
コンテナーの作成をクリックします。

Docker 構成の作成ダイアログで、次の操作を行います。
オプションを変更をクリックし、公開されているすべてのポートをランダムに公開を選択して、公開されているすべてのコンテナーポートをホストインターフェースに公開します。もちろん、より安全な設定を行うには、特定のポートバインディングを定義する必要があります。ただし、このチュートリアルでは、ローカルマシンが十分に安全であり、重要なものは何もないことを前提としています。
オプションを変更をクリックし、環境変数を選択して、PostgreSQL サーバーの認証設定を定義する環境変数を構成します。このチュートリアルでは、信頼認証(英語)を使用できます。これにより、PostgreSQL サーバーに接続できる人は誰でも、任意のユーザー名でデータベースにアクセスできるようになることに注意してください。「環境変数」フィールドで、「
」をクリックし、値
trustを持つPOSTGRES_HOST_AUTH_METHOD変数を追加します。認証の詳細については、公式の PostgreSQL Docker Hub イメージページ(英語)を参照してください。
オプションで、構成とコンテナーのカスタム名を指定できます。

PostgreSQL サーバーに接続する
Docker は、コンテナー内のデフォルトの PostgreSQL サーバーポート 5432 を、エフェメラルポート範囲(通常は 32768 から 61000)内のホストポートに自動的にマップします。このチュートリアルでは、ポート 32768 が使用されていることを前提としています。実際のマッピングが何であるかを確認するには、コンテナーノードのサービスツールウィンドウで PostgreSQL コンテナーを右クリックし、インスペクションをクリックして、インスペクション出力で HostPort フィールドの値を見つけます。
データベースツールウィンドウを開きます ()。
をクリックし、 を選択します。
ホスト名を
localhostに、ポート番号を32768(またはマップされたホストポート)に、デフォルトのデータベースとユーザーをpostgresに設定します。trust認証を使用して PostgreSQL サーバーを実行したため、パスワードは必要ありません。必要に応じて、ドライバをダウンロードして接続をテストします。
OK をクリックして、PostgreSQL サーバーをデータソースとして追加します。
IntelliJ IDEA でのデータベースソースの操作の詳細については、「データベースツールおよび SQL」を参照してください。
関連ページ:
Docker
Docker は、分離された再現可能な環境で実行可能ファイルをデプロイおよび実行するためのツールです。これは、たとえば、本番環境と同じ環境でコードをテストする場合に役立ちます。IntelliJ IDEA は Docker 機能を統合し、Docker イメージの作成、Docker コンテナーの実行、Docker Compose アプリケーションの管理、パブリックおよびプライベート Docker レジストリの使用など、IDE から直接実行するための支援を提供します。Docker プラグインを有効にする...
データベースツールおよび SQL
データベースツールと SQL プラグインを有効にするこの機能は、IntelliJ IDEA にデフォルトでバンドルされ有効になっているデータベースツールと SQL プラグインに依存しています。関連する機能が利用できない場合は、プラグインを無効にしていないことを確認してください。を押して設定を開き、を選択します。インストール済みタブを開き、データベースツールおよび SQL プラグインを見つけて、プラグイン名の横にあるチェックボックスを選択します。IntelliJ IDEA のデータベース管理機能は、...
Docker Compose
Docker Compose は、マルチコンテナーアプリケーションを実行するために使用されます。例: Web サーバー、バックエンドデータベース、アプリケーションコードを個別のサービスとして実行できます。各サービスは、必要に応じてコンテナーを追加することで拡張できます。これにより、本番環境と同様に、動的な環境で効率的な開発とテストを実行できます。Docker プラグインを有効にするこの機能は、デフォルトで IntelliJ IDEA にバンドルされて有効になっている Docker プラグインに依存して...
Java アプリケーションを Docker 化する
Docker を使用して、コンパイル済みの Java アプリケーションを、特定のランタイム環境およびその他の必要な依存関係と共にイメージにパックできます。その後、そのイメージからコンテナーを実行して、アプリケーションがこの環境でどのように実行されるかを確認できます。これは、アプリケーションの Docker 化と呼ばれます。このチュートリアルでは、Dockerfile を作成して、OpenJDK 17 とコンパイル済みの Java アプリケーションを使用して Docker イメージをビルドする方法に...