このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Docker超入門:Docker ComposeでpgAdmin4+PostgreSQLコンテナを構築する方法

🐘 Docker ComposeでpgAdmin4+PostgreSQLコンテナを構築する方法

ここでは、Docker Compose を使って、
PostgreSQLデータベースとWebベースの管理ツール pgAdmin4 を連携させる構成を紹介します。
この構成を使えば、ブラウザ上でPostgreSQLをGUI管理できるようになります✨

ここで学ぶ内容

💡 pgAdmin4とは?

pgAdmin4(ピージーアドミンフォー) は、PostgreSQL用の公式GUI管理ツールです。
データベースの作成・テーブル設計・SQLクエリ実行・バックアップ管理など、
通常CLIで行う操作を、ブラウザから簡単に行えるようにしてくれます。

項目内容
開発元PostgreSQL Global Development Group
対応環境Windows / macOS / Linux / Webブラウザ
主な機能データベース管理・SQL実行・バックアップ・ユーザー管理
公式サイトhttps://www.pgadmin.org/

URL:https://www.pgadmin.org/

💬 ポイント
MySQLでいう phpMyAdmin のような存在で、PostgreSQLをGUIで管理したいときに大活躍します!

🐘 PostgreSQLとは?

 PostgreSQL(ポストグレスキューエル) は、オープンソースの高性能RDBMS(リレーショナルデータベース管理システム)です。
堅牢で信頼性が高く、商用データベースに匹敵する機能を備えています。

項目内容
開発起源カリフォルニア大学バークレー校(Postgresプロジェクト)
特徴トランザクション整合性(ACID準拠)・高拡張性・多言語サポート
代表的な用途Webアプリ、モバイルバックエンド、データ分析基盤など
公式サイトhttps://www.postgresql.org/

URL:https://www.postgresql.org/

🧹 作業前のクリーンアップ

まずは、以前の検証用コンテナや不要なイメージを削除しておきましょう。
環境をきれいにしておくことで、トラブルを防げます。

docker system prune -a --volumes
オプション説明
-a未使用のコンテナ・イメージ・ネットワークを削除
--volumes未使用のボリュームも削除

⚠️ 注意:削除確認が表示されたら「y」を入力して進めましょう。
もしGUI操作が得意な方は、Docker Desktop から削除してもOKです。

実行結果

PS C:\Users\joeac> docker system prune -a --volumes
WARNING! This will remove:
  - all stopped containers
  - all networks not used by at least one container
  - all anonymous volumes not used by at least one container
  - all images without at least one container associated to them
  - all build cache

Are you sure you want to continue? [y/N] y

📁 compose.yamlの作成

1.ディレクトリを準備

cd desktop/docker
mkdir pgadminpostgre
cd pgadminpostgre

実行結果

PS C:\Users\joeac> cd desktop/docker
PS C:\Users\joeac\Desktop\docker> mkdir pgadminpostgre

    Directory: C:\Users\joeac\Desktop\docker

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d----          2025/10/16    19:18                pgadminpostgre

PS C:\Users\joeac\Desktop\docker> cd pgadminpostgre
PS C:\Users\joeac\Desktop\docker\pgadminpostgre>

2.VSCodeでcompose.yamlを開く

code compose.yaml

これで設定ファイルを編集する準備ができました。

🧾 compose.yamlの内容

以下の内容を compose.yaml に貼り付けて保存してください👇

services:
  postgres:
    image: postgres:14.2
    container_name: postgres_container
    environment:
      POSTGRES_DB: test-db
      POSTGRES_USER: test-user
      POSTGRES_PASSWORD: test-pass
    volumes:
      - db-data:/var/lib/postgresql/data

  pgadmin:
    image: dpage/pgadmin4:6.9
    container_name: pgadmin_container
    environment:
      PGADMIN_DEFAULT_EMAIL: admin@example.com
      PGADMIN_DEFAULT_PASSWORD: adminpassword
    ports:
      - "5050:80"
    volumes:
      - pgadmin4-data:/var/lib/pgadmin

volumes:
  db-data:
  pgadmin4-data:

⚙️ 定義内容の解説

項目説明
services起動するコンテナサービスを定義するセクション。
postgresPostgreSQLコンテナの設定。
image使用するイメージ(postgres:14.2)。
container_nameコンテナ名(postgres_container)。
environment初期設定(DB名・ユーザー・パスワードなど)。
volumes永続化データをホストに保存(db-data)。
pgadminpgAdmin4の設定。
image使用するイメージ(dpage/pgadmin4:6.9)。
container_nameコンテナ名(pgadmin_container)。
environment初期ログイン情報を指定。
portsホストのポート5050をpgAdminの80番ポートにマッピング。
volumes設定データを保持(pgadmin4-data)。

💬 ポイント

  • PostgreSQLとpgAdmin4は同じDockerネットワーク上で自動的に接続されます。
  • PostgreSQLのデータは db-data に保存され、再起動しても消えません。
  • pgAdmin4は localhost:5050 でアクセス可能です。

🚀 コンテナの起動

次のコマンドを実行してコンテナを立ち上げましょう。

docker compose up -d
オプション説明
upcompose.yamlをもとにコンテナを作成・起動
-dバックグラウンド(detached)モードで起動

実行結果

PS C:\Users\joeac\Desktop\docker\pgadminpostgre> docker compose up -d
[+] Running 29/29
 (省略)
[+] Running 5/5
 ✔ Network pgadminpostgre_default       Created                                              0.0s
 ✔ Volume pgadminpostgre_db-data        Created                                              0.0s
 ✔ Volume pgadminpostgre_pgadmin4-data  Created                                              0.0s
 ✔ Container pgadmin_container          Started                                              2.5s
 ✔ Container postgres_container         Started                                              2.3s
PS C:\Users\joeac\Desktop\docker\pgadminpostgre>

これで両方のコンテナが起動しました!

🌐 pgAdmin4へアクセス

1.ブラウザを開き、
URL欄に「localhost:5050」 を入力。

2.ログイン画面が表示されたら、
compose.yamlで設定した以下の情報を入力します。

項目入力内容
Emailadmin@example.com
Passwordadminpassword

言語は「Japanese」を選択してログインします。

🧠 PostgreSQLを登録して接続

ログイン後の画面で、

1.「新しいサーバーを追加」をクリック

2.「General」タブで好きな名前を入力(例:postgres)

3.「接続」タブで以下を入力👇

項目入力内容
Host name/addresspostgres
Maintenance databasetest-db
Usernametest-user
Passwordtest-pass

「保存」ボタンをクリックすると接続成功です🎉

PostgrSQLに接続されます。

✅ まとめ

これで pgAdmin4 + PostgreSQL 環境が完成しました!

ステップ内容
1️⃣環境をクリーンアップ(docker system prune -a --volumes)
2️⃣compose.yamlを作成
3️⃣docker compose up -d で起動
4️⃣ブラウザから localhost:5050 へアクセス
5️⃣pgAdmin4でPostgreSQLに接続

💬 ひとことアドバイス

pgAdmin4を使えば、PostgreSQLの設定・操作・管理がすべてブラウザで完結!
CLIに慣れていない人でも簡単に扱えるので、学習にも最適です✨