このページで解説している内容は、以下の 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ブラウザ上で動作
対応DBMySQL, 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/

URL:https://mariadb.org/

💬 ポイント
MySQLを使っていた人も、そのままMariaDBに移行できるほど互換性があります。
Docker公式イメージも整備されており、環境構築が非常に簡単です。

🧱 コンテナ構成のイメージ

今回の構成では、phpMyAdminMariaDB の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:

⚙️ 設定内容の解説

セクション項目説明
servicesmariadbMariaDBサービスの定義開始
imagemariadb:10.8MariaDBの公式イメージを使用
container_namemariadb_containerコンテナ名を指定
environment環境変数を設定し、DBの初期構成を定義
MARIADB_ROOT_PASSWORDMariaDBのrootユーザーのパスワード
MARIADB_DATABASE自動的に作成されるデータベース名
MARIADB_USER作成されるユーザー名
MARIADB_PASSWORDユーザーのパスワード
volumesdb-data:/var/lib/mysql永続化ボリュームの設定(DBデータ保持)

セクション項目説明
servicesphpmyadminphpMyAdminサービスの定義
imagephpmyadmin:5.2phpMyAdminの公式イメージ
container_namephpmyadmin_containerコンテナ名を指定
depends_onmariadbMariaDBコンテナが起動してからphpMyAdminを起動
environmentPMA_HOST
PMA_USER
PMA_PASSWORD
phpMyAdminの接続設定
ports"80:80"ポートのマッピングを指定。公開
volumesphpmyadmin-data:/sessionsセッション情報の永続化設定

💬 まとめると…

  • MariaDBがデータベースを提供。
  • phpMyAdminがブラウザ上で管理画面を提供。
  • 両者はComposeの内部ネットワークで自動的に接続される。
  • データは「db-data」、セッションは「phpmyadmin-data」で永続化される。

🚀 コンテナの作成と実行

compose.yamlの準備ができたら、次のコマンドで2つのコンテナを起動します。

docker compose up -d
オプション説明
upcompose.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 IDIMAGEPORTSNAMES
5c4f8b636bafphpmyadmin:5.20.0.0.0:80->80/tcpphpmyadmin_container
efdac820fb6emariadb:10.83306/tcpmariadb_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で安心してデータベースを扱えます。