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

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

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

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

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