Docker コンテナーでデータベースを実行する
Docker を使用すると、コンテナー内でデータベースをリモートサーバーであるかのように実行し、アプリケーションがデータベースとどのように連携するかをテストできます。
このチュートリアルでは、PostgreSQL サーバーを搭載した Docker コンテナーを実行し、GoLand を使って接続する方法を学びます。
PostgreSQL サーバーイメージをプルする
サービス ツールウィンドウで、Docker 接続を展開し、 イメージ ノードを選択します。
表示された プルするイメージ フィールドで
postgresを入力し始め、必要なイメージリポジトリを選択します。 例えば、postgresを選択してデフォルトのpostgres:latestイメージをプルします。
Ctrl+Enter を押して Docker がイメージをプルするまで待ちます。

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

Docker 構成の作成 ダイアログで、 オプションを変更 をクリックし、 公開されているすべてのポートをランダムに公開 を選択して、公開されているすべてのコンテナーポートをホストインターフェースに公開します。
オプションを変更 をクリックし、 環境変数 を選択します。 表示される 環境変数 フィールドで、PostgreSQL 認証用の環境変数を設定できます。

閲覧 をクリックします。 開いた 環境変数 ダイアログで、
追加 をクリックし、
POSTGRES_HOST_AUTH_METHOD変数にtrustの値を追加します。
命名 と コンテナー名 フィールドに、構成(例:
PostgreSQL Container)やコンテナー(例:postgresql)のカスタム名を指定します。
変更を適用して、 実行 をクリックしてください。
GoLand は新しい Docker コンテナーを作成して起動します。 これは サービス ツールウィンドウの コンテナー ノードに表示されます。

PostgreSQL サーバーに接続する
Docker はコンテナー内のデフォルト PostgreSQL サーバーポート 5432 を、 エフェメラルポート範囲 (通常は 32768 から 61000)内のホストポートに自動的にマッピングします。 このチュートリアルでは、例としてポート 55000 を使用します。
データベース ツールウィンドウを開きます()。
新規 をクリックして、 を選択します。
ホスト名を
localhost、ポート番号を55000(またはマッピングされたホストポート番号)、デフォルトのデータベースとユーザーをpostgresに設定してください。 PostgreSQL サーバーの実行にtrust認証を使用しているため、パスワードは不要です。必要に応じて、 ドライバーをダウンロードし、接続テストを行ってください。

OK をクリックして PostgreSQL サーバーをデータソースとして追加します。
作成されたデータソースは、 データベース ツールウィンドウに表示されます。 接続ツリーを展開すると、Docker で実行されている PostgreSQL サーバーのデータベースオブジェクトを表示できます。 PostgreSQL データベース接続プロセスや利用可能なオプションの詳細は、 PostgreSQL データベースに接続する を参照してください。
要約
このチュートリアルでは、次の方法を学習しました。
Docker イメージの取得と管理
DBMS(PostgreSQL など)イメージからコンテナーを構成して実行する
GoLand とコンテナー内で実行されているデータベースとの接続を確立します。