[Docker] Docker で MySQL と phpMyAdmin 環境を構築する方法

Docker
スポンサーリンク

前回は docker-compose を使用して MySQL 環境を構築しました。
今回は docker-compose を使用して、MySQL と phpMyAdmin の環境を構築してみます。

環境

macOS Big Sur: 11.2.1
Docker: 20.10.2, build 2291f61
Docker-Compose: 1.27.4, build 40524192
MySQL: 5.7.33
phpMyAdmin: 5.0.4

事前準備

ディレクトリ構成

docker-compose で環境を構築する前に、以下のようにディレクトリを作成しておきます。

docker
  |--db
  |    |--data
  |    |--sql
  |    |--my.cnf
  |--phpmyadmin
       |--sessions
docker-compose.yml

ディレクトリを作成する、コマンドは以下の通りです。

% cd docker
% mkdir db
% mkdir db/data
% mkdir db/sql
% mkdir phpmyadmin
% mkdir phpmyadmin/sql

MySQL の設定ファイル作成

続いて、MySQL の設定ファイル my.cnf を作成します。my.cnf ファイルは、先ほど作成した db ディレクトリ直下に作成します。

% vi db/my.cnf

my.cnf は以下の通りです。

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

[client]
default-character-set=utf8mb4

docker-compose ファイルの作成

最後に docker-compose ファイルを作成します。
docker-compose.yml ファイルは、docker ディレクトリと同じ階層に作成します。

% vi docker-compose.yml

docker-compose.yml は以下のように編集します。

version: '3'

services:
  mysqldb:
    image: mysql:5.7
    container_name: mysql57_container
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: my_testdb
      MYSQL_USER: hiro
      MYSQL_PASSWORD: hiropasswd
      TZ: 'Asia/Tokyo'
    volumes:
      - ./docker/db/data:/var/lib/mysql  
      - ./docker/db/my.cnf:/etc/mysql/conf.d/my.cnf
      - ./docker/db/sql:/docker-entrypoint-initdb.d
    ports:
      - "3306:3306"
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    depends_on:
      - mysqldb
    environment:
      - PMA_ARBITRARY=1
      - PMA_HOSTS='mysqldb'
    ports:
      - "3000:80"
    volumes:
      - ./docker/phpmyadmin/sessions:/sessions

4行目、23行目、26行目の「mysqldb」はサーバ名になります。一致させるようにしてください。
また、MySQL のルートユーザーパスワードは、8行目の MYSQL_ROOT_PASSWORD で設定しています。任意のパスワードに変更してください。
9行目はテスト用データベース名、10、11行目は一般ユーザーとそのパスワードです。不要な場合は削除してください。
MySQL のポート番号は 3306(18行目)、phpMyAdmin のポート番号は 3000(28行目) に設定しています。

docker-compose の実行

以上で準備が完了しましたので、docker-compose を実行してインストールをします。

docker-compose up -d

phpMyAdmin への接続確認

ブラウザを起動して http://localhost:3000 にアクセスします。
以下のように、phpMyAdmin のログインページが表示されます。

phpMyAdmin のログイン画面

phpMyAdmin のログイン画面

データベース名ログインに成功すると、以下のようにデータベース操作が可能になります。

ログイン後の画面

ログイン後の画面

 

Please follow and like us:

コメント