こんにちは、フルスタックエンジニアのryuです。
今回の記事では、Dockerを使ってphpmyadminとmysqlを簡単に構築する方法を解説します。Dockerでsqlサーバーを構築するとき、phpmyadminを構築すると、DBの管理が簡単になるのでオススメです。
目次
Dockerを使ってphpmyadminとmysqlを簡単に構築する方法

DBとphpmyadminの構築方法が分からない・・・
今回の記事では、Dockerを使用してmysqlとphpmyadminの環境を構築する方法を解説します。
Dockerを使えば、簡単に環境を構築することができます!
Dockerの使い方が良く分からないという方は、こちらの記事で解説しております。
では、早速解説します!
docker-compose.ymlファイルの作成
では、早速mysqlとphpmyadminの環境を構築します。
まず、docker-compose.ymlファイルを作成します。
下記のように設定します。
version: '2'
services:
 mysql:
  image: mysql
  volumes:
    - "./mysql:/var/lib/mysql"
  environment:
    - MYSQL_ROOT_PASSWORD=password
 phpmyadmin:
  image: phpmyadmin/phpmyadmin
  environment:
    - PMA_ARBITRARY=1
    - PMA_HOST=mysql
    - PMA_USER=root
    - PMA_PASSWORD=password
  links:
    - mysql
  ports:
     - 8080:80
  volumes:
     - /sessions
これで完成です。
記事の後半でdocker-compose.ymlの中身の解説を行います。まずは起動確認をします。
Dockerコンテナを立ち上げる
次にDockerコンテナを立ち上げましょう
docker-compose up -dコマンドを入力すると、イメージをプルしてコンテナを立ち上げます。

1分くらいするとコマンドが完了します。

最後に「http://localhost:8080/」にアクセスすると下記の画面のようにphpmyadminの画面が表示されます。

mysqlに接続されていることも分かります。
Dockerを使用するとこのように簡単にDBの環境を作成することができます。ぜひオススメです。
phpmyadminのdocker-compose.yml設定解説
ここからは、先ほど設定した「docker-compose.yml」ファイルの設定を解説します。
おさらいですが、設定は下記のようになります。
version: '2'
services:
 ・・DBの設定 ・・
 phpmyadmin:
  image: phpmyadmin/phpmyadmin
  environment:
    - PMA_ARBITRARY=1
    - PMA_HOST=mysql
    - PMA_USER=root
    - PMA_PASSWORD=password
  links:
    - mysql
  ports:
     - 8080:80
  volumes:
     - /sessions
phpmyadmin特有の部分は「environment:」の部分です。ここを解説します。
phpmyadminのenvironmentの設定
phpmyadminのenvironmentの設定でsqlサーバーへの接続情報を設定します。
設定は下記のようなものがあります。
- PMA_ARBITRARYー1 に設定すると、任意のサーバーへの接続が許可される
 - PMA_HOSTーSQLサーバーのホスト名かIPアドレスを指定
 - PMA_PORTーSQLサーバーのポートの設定
 - PMA_USERーSQLサーバーに接続するユーザー名
 - PMA_PASSWORDーSQLサーバーに接続するユーザーのパスワード
 
その他の設定はこちらを参考にしてください。
phpmyadmin/phpmyadmin – Docker Hub
Dockerを使ってphpmyadminとmysqlを簡単に構築する方法まとめ
今回の記事では、今回の記事では、Dockerを使用してmysqlとphpmyadminの環境を構築する方法を解説しました。
簡単に環境構築できたと思います!
Dockerを使用すると環境構築が簡単になります。
Dockerの使い方をさらに知りたいという方はこちらの講座と参考書がオススメです。
Udemyの講座はこちら











































