このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
Docker超入門:Docker ComposeでPostgreSQLコンテナを構築する方法

🐘 Docker ComposeでPostgreSQLコンテナを構築する方法
ここでは Docker Compose を使って、人気のデータベースシステム PostgreSQL(ポストグレスキューエル) をコンテナ化する方法を紹介します。
Docker Composeを使えば、たった数行の設定でデータベース環境を簡単に構築できます!
ここで学ぶ内容

💡 PostgreSQLとは?

PostgreSQL(ポストグレスキューエル) は、オープンソースの高機能なリレーショナルデータベース(RDBMS)です。
大学の研究プロジェクトから誕生した歴史あるソフトウェアで、世界中の開発者に愛されています。
| 項目 | 内容 |
|---|---|
| 開発起源 | カリフォルニア大学バークレー校「Postgresプロジェクト」 |
| 名前の由来 | “Post-Ingres”(Ingresの後継) |
| 主な特徴 | ACID準拠・同時実行制御・トランザクション・拡張性 |
| 対応言語 | SQL, PL/pgSQL, Python, C, Perl など |
| 公式サイト | https://www.postgresql.org/ |
URL:https://www.postgresql.org/

💬 ポイント
PostgreSQLは「堅牢・信頼性・拡張性」の三拍子が揃ったDBMSです。
Webアプリ、モバイルアプリ、業務システム、データ分析基盤など、どんな用途にも対応できます。
🧹 まずは不要なDockerオブジェクトを削除!
作業前に、古いコンテナや不要なキャッシュを削除しておくとスムーズです。
以下のコマンドを実行しましょう。
docker system prune -a --volumes| オプション | 説明 |
|---|---|
| -a | 使用していないすべてのコンテナ・イメージ・ネットワークを削除 |
| --volumes | 未使用のボリュームも削除(必要に応じて使用) |
実行後にAre you sure you want to continue? [y/N] と聞かれるので、
y と入力して進めます。
💬 補足
このコマンドはクリーンアップ用です。
環境によっては削除されないオブジェクトもあるので、その場合は手動で削除して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 の準備
Docker Composeを使うには、設定ファイル「compose.yaml」を作成します。
1️⃣ 作業ディレクトリを作成
cd desktop/docker
mkdir postgresql
cd postgresql実行結果
PS C:\Users\joeac> cd desktop/docker
PS C:\Users\joeac\Desktop\docker> mkdir postgresql
Directory: C:\Users\joeac\Desktop\docker
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 2025/10/16 0:46 postgresql
PS C:\Users\joeac\Desktop\docker> cd postgresql
PS C:\Users\joeac\Desktop\docker\postgresql>2️⃣ VSCodeを起動
code compose.yamlこれで compose.yaml を編集する準備ができました!
🧾 compose.yamlの内容
以下の設定をVS Codeに貼り付けて保存します👇
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
volumes:
db-data:⚙️ 設定内容の解説
| 項目 | 説明 |
|---|---|
| services | コンテナとして起動するサービスを定義するセクション。ここでは postgres のみ。 |
| image | 使用するDockerイメージ(postgres:14.2)を指定。 |
| container_name | コンテナ名を指定(postgres_container)。 |
| environment | 環境変数を指定し、DB初期設定を自動化。 |
| POSTGRES_DB | 作成するデータベース名。 |
| POSTGRES_USER | 作成するユーザー名。 |
| POSTGRES_PASSWORD | ユーザーのパスワード。 |
| volumes | 永続化データの保存場所を指定。db-data にDBファイルを保存。 |
💬 ポイント
PostgreSQLは /var/lib/postgresql/data にデータを保存します。
このディレクトリをホストボリューム db-data にマウントすることで、
コンテナを削除してもデータが残る仕組みです。
🚀 コンテナの作成と実行
設定が完了したら、次のコマンドでコンテナを起動します。
docker compose up -d| オプション | 説明 |
|---|---|
| up | compose.yamlを基にコンテナを作成・起動する |
| -d | バックグラウンドで実行(detachedモード) |
PS C:\Users\joeac\Desktop\docker\postgresql> docker compose up -d
[+] Running 14/14
(省略)
[+] Running 3/3
✔ Network postgresql_default Created 0.1s
✔ Volume postgresql_db-data Created 0.0s
✔ Container postgres_container Started 1.1s
PS C:\Users\joeac\Desktop\docker\postgresql>💬 補足
Docker Composeは自動的にネットワークを作成し、postgres_container をその中で実行します。
💻 PostgreSQLコンテナへの接続
起動したコンテナに接続して、内部操作を行ってみましょう。
コンテナにログインする
docker compose exec postgres /bin/bash| コマンド要素 | 説明 |
|---|---|
| docker compose | Composeを使ったコンテナ操作コマンド |
| exec | コンテナ内でコマンドを実行 |
| postgres | 実行対象のサービス名 |
| /bin/bash | コンテナ内でbashシェルを起動 |
実行すると、コンテナ内のシェルに入ります。
PS C:\Users\joeac\Desktop\docker\postgresql> docker compose exec postgres /bin/bash
root@95812dd0bfae:/#🧠 PostgreSQLデータベースへ接続
PostgreSQLコンテナ内から、データベースに接続してみましょう。
psql -U test-user -d test-db| オプション | 説明 |
|---|---|
| -U | ユーザー名を指定 |
| -d | データベース名を指定 |
実行後、下のように表示されれば接続成功です👇
root@95812dd0bfae:/# psql -U test-user -d test-db
psql (14.2 (Debian 14.2-1.pgdg110+1))
Type "help" for help.
test-db=#💬 補足
「test-db=#」と表示されていれば、
PostgreSQLの対話モード(psql)に入っています。
🔚 接続の終了
作業を終えたら、順に終了していきます。
1️⃣ psqlを終了
\q実行結果
test-db=# \q
root@95812dd0bfae:/#2️⃣ bashシェルを終了
exit実行結果
root@95812dd0bfae:/# exit
exit3️⃣ PowerShellのプロンプトに戻ります。
PS C:\Users\joeac\Desktop\docker\postgresql>🧩 まとめ
これで PostgreSQLコンテナ の構築は完了です!✨
Docker Composeを使えば、環境構築が本当にスムーズになります。
| ステップ | 内容 |
|---|---|
| 1️⃣ | 不要なオブジェクト削除(docker system prune -a) |
| 2️⃣ | compose.yaml作成 |
| 3️⃣ | docker compose up -d で起動 |
| 4️⃣ | docker compose exec postgres /bin/bash でログイン |
| 5️⃣ | psql -U test-user -d test-db で接続 |
💬 ひとことまとめ
Docker Composeを使えば、PostgreSQLのセットアップはわずか数分!
環境の初期化・再構築も超カンタンです🎉
