前回は 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 のログインページが表示されます。
データベース名ログインに成功すると、以下のようにデータベース操作が可能になります。
コメント