ローカル 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 の使用方法の詳細な説明

推薦する

Vueコンポーネント間の通信の非常に詳細な要約

目次序文1. Props、$emit一方向データフロー2. $親、$子3. $attrs、$list...

Docker MySQLコンテナデータベースへの変更が有効にならない問題を解決する

公式の MySQL イメージを使用するには、構成ファイル、DB データ ファイル ディレクトリなどの...

CSS 線形グラデーション凹型長方形遷移効果の実装

この記事では、線形グラデーションの凹四角形の遷移効果の難しさやアイデアについて説明します。主に、凹四...

IE8 互換性について: X-UA-compatible 属性の説明

問題の説明:コードをコピーコードは次のとおりです。 <meta http-equiv=&quo...

DockerToolBox ファイルマウント実装コード

docker を使用すると、ファイルをマウントできない場合があります。これは、仮想マシンの共有フォル...

MySQLデータベースが予期せずクラッシュし、テーブルデータファイルが破損して起動できなくなる問題を解決します。

問題: MySQL データベースが予期せずクラッシュしたため、データベースを起動できませんでした。エ...

JavaScript WebAPI、DOM、イベント、操作要素例の詳しい説明

目次ウェブAPI DOM DOMツリーDOM要素取得方法ドキュメントオブジェクトのプロパティイベント...

Dockerfile を使用して nginx イメージを構築する例

Dockerfile の紹介Docker は、Dockerfile の内容を読み取ってイメージを自動...

JavaScript が Xiaomi のカルーセル効果を模倣

この記事は、透明度を変えてカルーセルにするXiaomiカルーセルを真似て書いたものです。初心者なので...

jsでシンプルなパズルゲームを実現する

この記事では、簡単なパズルゲームを実装するためのjsの具体的なコードを参考までに共有します。具体的な...

HTML+CSSは、要素の位置までスクロールして読み込みアニメーション効果を表示します。

要素までスクロールするたびに読み込みアニメーションを追加するにはどうすればよいですか?初期パラメータ...

Vue のスロットスコープの詳細な理解(初心者向け)

Baidu には slot-scope に関する記事が既にたくさんありますが、以前よく学習しておら...

ウェブデザインの教育または学習プログラム

セクションコース内容営業時間1 ウェブデザインの概要2 2 HTML 基本タグとフォーマットタグ 2...

Vue プロジェクトにインターフェース リスニング マスクを追加する方法

1. 事業背景マスク レイヤーを使用してユーザーの異常な操作を遮断する方法は、フロントエンドでよく使...

VMware12.0 インストール Ubuntu14.04 LTS チュートリアル

私は、デスクトップ バージョンとサーバー バージョンの両方で、仮想マシンにさまざまなイメージを何度も...