GNU/Linux >> Linux の 問題 >  >> Panels >> Docker

DockerでのPostgreSQLの実行、クイックで実用的なガイド

このチュートリアルでは、Dockerコンテナ内に永続ストレージを使用してPostgreSQLを実行し、それに接続する方法について説明します。

PostgreSQL は、オープンソースのオブジェクトリレーショナルデータベース管理システムです。 30年以上前から存在しており、「世界で最も先進的なオープンソースのリレーショナルデータベース」として宣伝されています。

Docker 分散アプリケーションを簡単にパッケージ化、展開、実行するためのIT業界の標準になりました。 Dockerコンテナーを使用すると、依存関係でシステムを乱雑にすることなく、新しいアプリケーションをすばやく起動できます。

Dockerを使用して、コンテナー内のPostgreSQLデータベースをリモートサーバーとして実行できます。 Dockerコンテナーはオープンスタンダードに基づいており、コンテナーをすべての主要なLinuxディストリビューション、macOS、およびMicrosoftWindowsで実行できます。

DockerでPostgreSQLを実行する

ここでは、PostgreSQLイメージをダウンロードし、イメージの準備ができていることを確認し、特定のパラメーターを使用してイメージを実行し、最後に実行中のPostgreSQLインスタンスに接続します。

1。 PostgreSQLサーバーのDockerイメージをプルする

まず、DockerHubから既存のPostgreSQL公式イメージを取得する必要があります。画像はPostgreSQLバージョン9、10、11、12、および13で使用できます。最新を変更します 特定のリリースが必要な場合は、必要なバージョンにタグを付けます。

次に、画像をプルしましょう:

sudo docker pull postgres:latest

上記のコマンドを使用すると、DockerHubリポジトリから利用可能な最新バージョンのPostgreSQLがプルされます。

2。 PostgreSQLサーバーのDockerイメージからコンテナを実行する

デプロイする前に、データベースを永続化するためにDockerボリュームまたはバインドマウントをセットアップする必要があります。そうしないと、コンテナの再起動時にデータが失われます。マウントは/var / lib / postgresql / dataに対して行う必要があります コンテナ内のディレクトリ。

このガイド用のDockerボリュームを作成し、PostgreSQLコンテナにアタッチします。

次のコマンドは、ローカルマシンにボリュームを作成します。このボリュームは、後でPostgreSQLコンテナに接続できます。

sudo docker volume create postgres-volume

マシンにPostgreSQLイメージがあり、データを永続化するボリュームがで​​きたので、次のコマンドを使用してコンテナーをデプロイできます。

sudo docker run -d --name=postgres13 -p 5432:5432 -v postgres-volume:/var/lib/postgresql/data -e POSTGRES_PASSWORD=[your_password] postgres

docker runコマンドは、Dockerコンテナ内に実行中のPostgreSQLデータベースを作成します。

この構文を分解してみましょう。まず、そのコマンドの各パラメータの意味は次のとおりです。

  • -d このコンテナをデタッチモードで実行して、バックグラウンドで実行します。
  • -名前 postgres13という名前を割り当てます コンテナインスタンスに。
  • -p PostgreSQLコンテナポート5432をホストマシンの同じポートにバインドします。 localhost:5432に接続できるようになります PostgreSQLクライアントの使用( psql )ホストで実行しています。
  • -v オプションは、コンテナボリューム内のそのデータフォルダをバインドします( / var / lib / postgresql )ローカルDockerボリューム( postgres-volume )前の手順で作成しました。
  • -e 環境変数を設定します。この場合、PostgreSQLのルートパスワード。
  • postgres は、コンテナの作成に使用する画像の名前です。

実行中のコンテナを一覧表示することで、コンテナが実行されているかどうかを確認できます。

sudo docker ps
CONTAINER ID   IMAGE   COMMAND   CREATED   STATUS   PORTS   NAMES
6cb3293fe725   postgres   "docker-entrypoint.s…"   19 minutes ago   Up 19 minutes   0.0.0.0:5432->5432/tcp, :::5432->5432/tcp   postgres13

おめでとう!これで、新しいPostgreSQLインスタンスがDockerで実行されます。

さらに、次のコマンドを使用して、実行中のPostgreSQLコンテナのログファイルを確認できます。

sudo docker logs postgres13

3。 PostgreSQLサーバーに接続します

コンテナにアタッチしてpsqlを実行することで、インタラクティブなPostgreSQLシェルを取得できます。 指図。これにより、使い慣れたすべてのコマンドとフラグを使用するための完全なPostgreSQLコマンドラインインターフェイスが提供されます。

sudo docker exec -it postgres13 psql -U postgres

psqlを使用してPostgreSQLDockerインスタンスに接続することもできます ホストにプリインストールされているPostgreSQLクライアント。

psql -h localhost -U postgres

結論

Dockerを使用する最も重要なユースケースの1つは、依存関係やインストールを気にせずに、コンテナー内に構築されたアプリケーションを簡単に作成してアクセスできることです。

このチュートリアルでは、実際のホストマシンの代わりにDockerを使用してPostgreSQLサーバーをセットアップする方法について学びました。

さまざまなマイクロサービスがデータベースに依存するマイクロサービスアーキテクチャでは、DockerコンテナとしてPostgreSQLサーバーをデプロイすることが一般的になっています。

また、分離された環境でのローカル実行またはエンドツーエンドの統合テストにも広く使用されています。

ご不明な点やご提案がございましたら、お気軽にお問い合わせください。


Docker
  1. DockerコンテナでNginxを実行する方法:ステップバイステップガイド

  2. Docker(およびLinuxコンテナー)とは何ですか?

  3. Dockerを使用する時期と理由

  1. PostgreSQLをDockerコンテナとしてデプロイする方法

  2. Dockerロギングの完全な初心者向けガイド

  3. DockerComposeを使用するためのクイックガイド

  1. podmanとdockerの違い。

  2. 実行中のDockerコンテナでコマンドを実行する方法

  3. DockerでMongoDB5.0およびRocket.Chat4.0にアップグレードするためのガイド