はじめに
PostgreSQL 、 Postgres、とも呼ばれます は、オープンソースのオブジェクトリレーショナルデータベース管理システムです。開発者は、無料で安定していて柔軟性があるため、このリレーショナルデータベースを選択することがよくあります。実際、PostgreSQLとMySQLは最も人気のあるリレーショナルデータベース管理システムです。
現在、Postgresはコンテナで実行される最も広く使用されているDockerイメージの1つです。コンテナ化されたデータベースの人気は、それらを展開できる単純さに起因しています。また、多くのアプリケーションに1つの集中型データベースを用意する代わりに、開発者はアプリケーションごとにPostgreSQLコンテナを割り当てることができます。
このチュートリアルでは、DockerコンテナでPostgreSQLを実行する方法を学習します。
前提条件
- コマンドライン/ターミナルウィンドウへのアクセス
- sudoのユーザーアカウント 特権
- 既存のDockerインストール
DockerコンテナでのPostgreSQLの実行
Postgresコンテナのデプロイは簡単です。これらのデータベースコンテナを構築するためのPostgresイメージは、Dockerの公式リポジトリにあります。
このガイドでは、そのための2つの方法を説明します。
最初のオプションはDockerComposeを使用します 、マルチコンテナDockerアプリケーションを管理するためのツール。 Docker Composeを使用して、Postgresをコンテナー内で実行されるサービスとして構成できます。その場合、 yamlを作成します すべての仕様を含むファイル。
または、 aを使用することもできます 単一のDockerコマンド 新しいPostgreSQLコンテナをデプロイするために必要なすべての情報が含まれています。
オプション1:DockerComposeを使用してPostgresを実行する
Docker Composeを使用してPostgresコンテナーをデプロイするには、このDockerツールをシステムにセットアップする必要があります。
Linuxユーザーで、セットアップのサポートが必要な場合は、UbuntuにDockerComposeをインストールする方法またはCentOSにDockerComposeをインストールする方法に関するガイドの1つを参照してください。
1.簡単でクリーンなインストールを確実にするために、最初に postgresという名前の作業ディレクトリを作成します。 そのディレクトリに移動します:
mkdir postgres
cd postgres/
2.次に、Docker Composeを使用してPostgresイメージをダウンロードし、サービスを稼働させます。これを行うには、新しい docker-compose.ymlを作成します 選択したエディターでファイルを作成します(この例では、nanoを使用しました):
nano docker-compose.yml
3.次のコンテンツをdocker-composeに追加します ファイル:
version: ‘3’
service:
postgres:
image: ‘postgres: latest’
ports:
- “5432:5432”
yaml構成ファイルは、 postgres
があることを示しています latest postgres image
に基づいて構築されたサービス 。最新のPostgresバージョンを決定するか、使用するバージョン番号を指定できます。
最後に、コンテナが通信するポートを定義する必要があります。 5432
PostgreSQLのデフォルトのポート番号です。
4.ファイルを保存して終了します。
5. yaml構成ファイルができたので、postgresサービスを開始できます。 コンテナを実行します。 docker-compose up
を使用します -d
を使用したコマンド デタッチモードにするオプション (現在のシェルからコマンドを実行し続けることができます):
docker-compose up -d
6.次のコマンドでログを確認できます:
docker-compose logs -f
シェルに戻るには、 CTRL + Cを押します。 。
オプション2:単一のDockerコマンドを使用してPostgresを実行する
PostgreSQLをコンテナにデプロイするもう1つの方法は、単一のdockerコマンドを実行することです。
1つのコマンドで必要なすべての情報を指定することで、Postgresコンテナをダウンロードして実行できます。
docker run --name [container_name] -e POSTGRES_PASSWORD=[your_password] -d postgres
このコマンドは、Dockerに特定のコンテナー名で新しいコンテナーを実行するように指示し、Postgresパスワードを定義し、最新のPostgresリリースをダウンロードします。
Dockerに、実行中のすべてのコンテナを次のように一覧表示するように求めて、PostgreSQLコンテナが起動していることを確認します。
docker ps
このガイドでは、例という名前のコンテナを作成しました 実行中の他のコンテナの中からすばやく見つけることができます。
Postgresコンテナから始める
DockerコンテナでPostgresに接続する
Postgresコンテナを入力するには、コンテナ名を使用して実行し、 psql
を有効にする必要があります 、Postgresのコマンドラインインターフェイス。
docker exec -it [container_name] psql -U [postgres_user]
以下の例では、example
に接続しました postgres
としてのコンテナ ユーザー。
データベースの作成
Docker Postgresコンテナに入ると、次のデータベースを作成できます。
create database [db_name];
postgresユーザータイプとしてデータベースに接続します:
\c [db_name]
データベースを設定したら、次のステップは、データベース構造の論理表現を取得するのに役立つスキーマを作成することです。
create schema [db_schema_name]
ここで、テーブルを作成し、テーブルにデータを追加できます。
create table [table_name] ([field_names] [values])