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

🐳 Docker ComposeでphpMyAdmin+MariaDBコンテナを構築する方法
この記事では、Docker Compose を使って phpMyAdmin+MariaDBコンテナ を構築する方法を紹介します。
データベースの管理をブラウザから簡単に行えるようにする便利な構成です。
CLI操作が苦手な人でも、phpMyAdminを使えばGUIで直感的に操作できるようになります!
💡 phpMyAdminとは?

phpMyAdmin は、MySQLやMariaDBのデータベースをブラウザ上で管理できるツールです。
通常、MariaDBを操作するにはコマンドラインからSQL文を入力する必要がありますが、
phpMyAdminを使えば、マウス操作だけでテーブルの作成やデータの追加・削除、
ユーザー管理などが簡単に行えます。
| 項目 | 内容 |
|---|---|
| 開発言語 | PHP |
| 主な機能 | MySQL/MariaDBの管理、テーブル作成、データの追加・削除 |
| 利用環境 | Webブラウザ上で動作 |
| 対応DB | MySQL, MariaDB |
| 公式サイト | https://www.phpmyadmin.net/ |
URL:https://www.phpmyadmin.net/

💬 ポイント
CLIに比べて視覚的でわかりやすく、SQL構文を覚えていなくても直感的に操作できます。
🛠️ MariaDBとは?

MariaDB は、MySQLから派生したオープンソースのリレーショナルデータベース管理システム(RDBMS)です。
MySQLの元開発者によって設計され、MySQLと互換性を持ちながらも、
性能や安定性、セキュリティが強化されています。
| 項目 | 内容 |
|---|---|
| 開発元 | MariaDB Foundation |
| 互換性 | MySQLと完全互換 |
| 特徴 | 高性能、拡張性、セキュリティ重視 |
| 主な用途 | Webアプリケーションや企業データベース |
| 公式サイト | https://mariadb.org/ |

💬 ポイント
MySQLを使っていた人も、そのままMariaDBに移行できるほど互換性があります。
Docker公式イメージも整備されており、環境構築が非常に簡単です。
🧱 コンテナ構成のイメージ
今回の構成では、phpMyAdmin と MariaDB の2つのコンテナを連携させます。
それぞれ独立したコンテナとして動作しますが、
Docker Composeを使うことでネットワークやボリュームが自動的に連携されます。

| コンテナ名 | 役割 | データ保存場所 |
|---|---|---|
| mariadb_container | データベース(MariaDB本体) | db-data(永続化ボリューム) |
| phpmyadmin_container | データベース管理ツール(phpMyAdmin) | phpmyadmin-data(セッション用ボリューム) |
💬 ポイント
MariaDBのデータを永続化しておくことで、
コンテナを削除してもデータベースの中身は保持されます。
🧹 作業前のクリーンアップ
古いコンテナや未使用のイメージが残っていると、動作が不安定になることがあります。
まずは環境をきれいにしておきましょう。
コマンド書式
docker system prune -a --volumes| オプション | 説明 |
|---|---|
| -a | 未使用のすべてのイメージを削除 |
| --volumes | 使用していないボリュームも削除(必要に応じて) |
実行結果
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💬 補足
Docker Desktopを使ってGUIで削除してもOKです。
視覚的に確認しながら整理できるので初心者にもおすすめです。
📁 compose.yaml の作成
次に、phpMyAdmin+MariaDB コンテナをまとめて管理する compose.yaml ファイルを作成します。
1.作業ディレクトリの準備
cd desktop/docker
mkdir phpadmaria
cd phpadmaria実行結果
PS C:\Users\joeac> cd desktop/docker
PS C:\Users\joeac\Desktop\docker> mkdir phpadmaria
Directory: C:\Users\joeac\Desktop\docker
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 2025/10/15 0:42 phpadmaria
PS C:\Users\joeac\Desktop\docker> cd phpadmaria
PS C:\Users\joeac\Desktop\docker\phpadmaria>2.VS Codeを起動
code compose.yaml🧾 compose.yaml の内容
以下の内容を入力して保存します👇
services:
mariadb:
image: mariadb:10.8
container_name: mariadb_container
environment:
MARIADB_ROOT_PASSWORD: root-pass
MARIADB_DATABASE: test-db
MARIADB_USER: test-user
MARIADB_PASSWORD: test-pass
volumes:
- db-data:/var/lib/mysql
phpmyadmin:
image: phpmyadmin:5.2
container_name: phpmyadmin_container
depends_on:
- mariadb
environment:
PMA_HOST: mariadb
PMA_USER: test-user
PMA_PASSWORD: test-pass
ports:
- "80:80"
volumes:
- phpmyadmin-data:/sessions
volumes:
db-data:
phpmyadmin-data:⚙️ 設定内容の解説
| セクション | 項目 | 説明 |
|---|---|---|
| services | mariadb | MariaDBサービスの定義開始 |
| image | mariadb:10.8 | MariaDBの公式イメージを使用 |
| container_name | mariadb_container | コンテナ名を指定 |
| environment | 環境変数を設定し、DBの初期構成を定義 | |
| MARIADB_ROOT_PASSWORD | MariaDBのrootユーザーのパスワード | |
| MARIADB_DATABASE | 自動的に作成されるデータベース名 | |
| MARIADB_USER | 作成されるユーザー名 | |
| MARIADB_PASSWORD | ユーザーのパスワード | |
| volumes | db-data:/var/lib/mysql | 永続化ボリュームの設定(DBデータ保持) |
| セクション | 項目 | 説明 |
|---|---|---|
| services | phpmyadmin | phpMyAdminサービスの定義 |
| image | phpmyadmin:5.2 | phpMyAdminの公式イメージ |
| container_name | phpmyadmin_container | コンテナ名を指定 |
| depends_on | mariadb | MariaDBコンテナが起動してからphpMyAdminを起動 |
| environment | PMA_HOST PMA_USER PMA_PASSWORD | phpMyAdminの接続設定 |
| ports | "80:80" | ポートのマッピングを指定。公開 |
| volumes | phpmyadmin-data:/sessions | セッション情報の永続化設定 |
💬 まとめると…
- MariaDBがデータベースを提供。
- phpMyAdminがブラウザ上で管理画面を提供。
- 両者はComposeの内部ネットワークで自動的に接続される。
- データは「db-data」、セッションは「phpmyadmin-data」で永続化される。
🚀 コンテナの作成と実行
compose.yamlの準備ができたら、次のコマンドで2つのコンテナを起動します。
docker compose up -d| オプション | 説明 |
|---|---|
| up | compose.yamlの定義に基づいてコンテナを作成・起動 |
| -d | バックグラウンドで実行(detachedモード) |
実行後、Dockerが自動的にイメージをダウンロードし、
MariaDB → phpMyAdmin の順にコンテナを起動します。
実行結果
PS C:\Users\joeac\Desktop\docker\phpadmaria> docker compose up -d
[+] Running 31/31
✔ phpmyadmin Pulled 15.6s
✔ mariadb Pulled 13.2s
[+] Running 5/5
✔ Network phpadmaria_default Created 0.1s
✔ Volume phpadmaria_phpmyadmin-data Created 0.0s
✔ Volume phpadmaria_db-data Created 0.0s
✔ Container mariadb_container Started 3.2s
✔ Container phpmyadmin_container Started 0.8s🌍 phpMyAdminにアクセス
ブラウザを開き、URLバーに以下を入力します。
http://localhostすると、phpMyAdminの画面が表示されます。

ここでは、MariaDBの操作は行いませんが、GUIでデータベースの操作ができます🎉
🔍 動作確認(docker container ls)
現在起動しているコンテナの状態を確認してみましょう。
docker container ls実行結果
PS C:\Users\joeac\Desktop\docker\phpadmaria> docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5c4f8b636baf phpmyadmin:5.2 "/docker-entrypoint.…" 5 minutes ago Up 5 minutes 0.0.0.0:80->80/tcp, [::]:80->80/tcp phpmyadmin_container
efdac820fb6e mariadb:10.8 "docker-entrypoint.s…" 5 minutes ago Up 5 minutes 3306/tcp mariadb_container| CONTAINER ID | IMAGE | PORTS | NAMES |
|---|---|---|---|
| 5c4f8b636baf | phpmyadmin:5.2 | 0.0.0.0:80->80/tcp | phpmyadmin_container |
| efdac820fb6e | mariadb:10.8 | 3306/tcp | mariadb_container |
💬 ポイント
MariaDBは内部ポート3306で通信しますが、
phpMyAdminが同じDockerネットワーク内にあるため外部公開は不要です。
🧠 まとめ
Docker Composeを使えば、phpMyAdmin+MariaDBの連携環境がわずか数分で構築できます。
設定もシンプルで、GUIでのデータベース操作がすぐに始められます。
| ステップ | 内容 |
|---|---|
| 1️⃣ | docker system prune -a で不要な環境を整理 |
| 2️⃣ | compose.yaml を作成して2つのサービスを定義 |
| 3️⃣ | docker compose up -d でコンテナを起動 |
| 4️⃣ | ブラウザで http://localhost にアクセス |
| 5️⃣ | GUIでデータベース操作が可能に! |
💬 ひとことまとめ
Docker Composeを使えば、phpMyAdminとMariaDBの環境構築は超スピーディー!
CLIが苦手でもGUIで安心してデータベースを扱えます。
