ローカル Docker に Postgres 12 + pgadmin をインストールする方法 (Apple M1 をサポート)

ローカル Docker に Postgres 12 + pgadmin をインストールする方法 (Apple M1 をサポート)

導入

このプロジェクトでは最近、Posgres データベースを 9.6 から 12+ にアップグレードしました。移行テストを行うには、ローカルに複数のバージョンの Postgres をインストールする必要があります。最も便利な方法は、Docker を使用してインストールすることです。バージョンの競合の問題はなく、管理や削除も簡単です。

docker-compose や stack を使うのもお勧めです。簡単に言うと、データをローカルに保存できるので、再起動のたびにデータが失われることがなく、再利用できます。統合テストを実行する場合は、毎回新しい DB を開始できます。

次の docker-compose ファイルには、Postgres を使いやすくする pgAdmin も含まれています。お気に入りの DB ブラウザを使用することもできます。私は IDEA (ultimate) に付属するデータベース プラグインを使用します。

Intel CPUをサポート

しばらくMacOSで使用しましたが問題ありませんでした。

  • docker-compose.yml ファイルとして保存
  • ファイルパスでdocker-compose up -dを実行します。

例:

  • ユーザー名とパスワードは自由に設定できます
  • ボリュームはデータベースがローカルに保存されるパスです
  • ポート: デフォルトは 5432 です。通常は 15432 に変更します。プロジェクトが多く、10000 未満のポートは非​​常に混雑しています。
  • pgadminのメールアドレスとパスワードはページのログインパスワードです
  • pgadminのボリュームとポートはPostgresと同じです
バージョン: '3.5'

サービス:
 ポストグル:
 コンテナ名: pg12
 画像: postgres:12
 環境:
 POSTGRES_USER: pg12
 POSTGRES_パスワード: pg12
 PGD​​ATA: /data/postgres
 ボリューム:
 - postgres12:/Users/szhang/postgresql/pg12
 ポート:
 - 「5432:5432」
 ネットワーク:
 - 12ページ
 再起動: 停止しない限り

 pgadmin:
 コンテナ名: pgadmin12
 画像: dpage/pgadmin4
 環境:
 PGADMIN_DEFAULT_EMAIL: [email protected]
 PGADMIN_DEFAULT_PASSWORD: [email protected]
 ボリューム:
 - pgadmin12:/Users/szhang/postgresql/.pgadmin12
 ポート:
 - 「27777:80」
 ネットワーク:
 - 12ページ
 再起動: 停止しない限り

ネットワーク:
 12ページ:
 ドライバー: ブリッジ

ボリューム:
 postgres12:
 pgadmin12:

Apple M1のサポート

このバージョンの唯一の違いは、Postgres イメージが ARM バージョンであり、特に最新の Apple M1 チップを搭載したコンピューターをサポートしていることです。さらに、Apple M1 コンピューターは Docker を実行できますが、多くの Docker イメージにはまだ ARM バージョンがないため、現時点では M1 コンピューターを開発 (Docker が必要) に使用するのは便利ではありません。

バージョン: '3.5'

サービス:
 ポストグル:
 コンテナ名: pg12
 イメージ: arm64v8/postgres:12.6
 環境:
 POSTGRES_USER: pg12
 POSTGRES_パスワード: pg12
 PGD​​ATA: /data/postgres
 ボリューム:
 - postgres12:/Users/shubozhang/dev/postgresql/pg12
 ポート:
 - 「5432:5432」
 ネットワーク:
 -pg12
 再起動: 停止しない限り

 pgadmin:
 コンテナ名: pgadmin12
 画像: dpage/pgadmin4
 環境:
 PGADMIN_DEFAULT_EMAIL: [email protected]
 PGADMIN_DEFAULT_PASSWORD: [email protected]
 ボリューム:
 - pgadmin12:/Users/shubozhang/dev/postgresql/.pgadmin12
 ポート:
 - 「27777:80」
 ネットワーク:
 - 12ページ
 再起動: 停止しない限り

ネットワーク:
 12ページ:
 ドライバー: ブリッジ

ボリューム:
 postgres12:
 pgadmin12:

テスト

pgAdmin

docker-composeでメールアドレスとパスワードを使用してログインします

ユーザーインターフェース

インテリジェンス

ユーザー名、パスワード、ポートを使用して接続します。

ローカル Docker を使用した Postgres 12 + pgadmin (Apple M1 をサポート) のインストールに関するこの記事はこれで終わりです。Docker を使用した Postgres のインストールに関する関連コンテンツの詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Docker デプロイメント postgresql データベースについて
  • Docker で PostgreSQL を実行し、いくつかの接続ツールを推奨する
  • Docker が PostgreSQL を起動するときに複数のデータベースを作成するためのソリューション
  • Docker環境でPostgreSQLをアップグレードする詳細な手順
  • docker で PostgreSQL データベースをインストールして永続化する方法
  • dockerでPostgreSQLを実行する方法
  • docker 環境でのデータベース バックアップ (postgresql、mysql) のサンプル コード
  • docker をデプロイして postgres データベースにアクセスする方法

<<:  Vue-CLI3.xはプロジェクトをサーバーに自動的にデプロイします

>>:  MySQL binlog の使用方法の詳細な説明

推薦する

MySQLとOracleの誤解の詳細な説明

目次本質的な違いデータベースセキュリティ権限スキーマの移行パターンオブジェクトの類似性スキーマオブジ...

MySql マスタースレーブレプリケーションメカニズムの包括的な分析

目次マスタースレーブレプリケーションメカニズム非同期レプリケーション準同期レプリケーションマスタース...

WeChatミニプログラムユーザー認証による携帯電話番号の取得(getPhoneNumber)

序文ミニプログラムには、ユーザーを取得するための非常に便利な API があり、getPhoneNum...

MySQL でトランザクションのコミットとロールバックを実装する方法の詳細な例

最近、データベース データのスケジュールされた移行を実行する必要があります。実行プロセス中に何らかの...

CSS3を使用してフォントカラーグラデーションを実装する

Animation.css を使うと公式サイトのフォントがだんだんと変わっていくのが分かりました。c...

node.js で Web サーバーを作成する手順の詳細な説明

序文node.js でサーバーを作成するのは非常に簡単です。小さいながらも完全な Web サーバーを...

React サーバーサイドレンダリング原則の分析と実践

ほとんどの人は、サーバーサイド レンダリング (SSR と呼んでいます) の概念について聞いたことが...

シンプルなカルーセルの最も完全なコード分析を実装するJavaScript(ES6オブジェクト指向)

この記事では、シンプルなカルーセルを実装するためのJavaScriptの具体的なコードを参考までに紹...

Linux クラウド サーバー上に SFTP サーバーとイメージ サーバーを構築する方法

まず、SFTP プロトコルと FTP プロトコルの違いを理解してください。ここでは詳細には触れません...

MySQL InnoDB MRR 最適化ガイド

序文MRR は Multi-Range Read の略で、ランダム ディスク アクセスを削減し、ラン...

docker ストレージを使用して Exit を実行すると、サーバーへのファイルのアップロードが失敗する問題と解決策

1. 問題の説明Docker コンテナにインストールされているストレージが終了状態になっているため、...

ウェブページに埋め込まれた Flash と IE、FF、Maxthon の互換性の問題

いろいろ苦労した後、インターネットで検索したり、以前の会社のプロジェクトを探したり、他の人のプロジェ...

MySQLデータベースの基本構文と操作

MySQLデータベースの基本構文DDL操作データベース作成構文: create database デ...

HTML テーブル マークアップ チュートリアル (4): 境界線の色属性 BORDERCOLOR

テーブルを美しくするために、テーブルにさまざまな境界線の色を設定できます。基本的な構文<テーブ...

MySQL エンコーディング utf8 および utf8mb4 utf8mb4_unicode_ci および utf8mb4_general_ci

参考: MySQL 文字セットの概要utf8mb4 は MySQL 8.0 のデフォルトの文字セット...