Skip to main content

Docker ComposeでMySQL + phpMyAdminをやってみた

DockerのMySQLにローカルからアクセスする
の続編

いい加減Docker使いこなさないとまずいと思い
今回はDocker Composeを使ってみた


・yaml

version: '3'
services:
  mysql:
    image: mysql:8.0.20
    container_name: mysql_host
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: test_database
      MYSQL_USER: docker
      MYSQL_PASSWORD: docker
      TZ: 'Asia/Tokyo'
    volumes: 
    - ./docker/db/sql:/docker-entrypoint-initdb.d
    ports:
    - 3307:3306

  phpmyadmin:
    container_name: phpmyadmin_test
    image: phpmyadmin/phpmyadmin
    environment: 
      PMA_ARBITRARY: 1
      PMA_HOST: mysql_host
      PMA_USER: root
      PMA_PASSWORD: root
    ports:
    - 8090:80

 

・Docker Dcomposeの解説
パラメータ系はここに書いてある
mysql
https://hub.docker.com/_/mysql
docker-entrypoint-initdb.dにファイル置くと初回のデータ挿入してくれる

php-myadmin
https://hub.docker.com/r/phpmyadmin/phpmyadmin

volumesはマウントするという意味
https://teratail.com/questions/190933

 

・コマンド

#起動(-dはバックグラウンドの意味)
docker-compose up -d
#終了
docker-compose down

 

・以下にアクセスして動作確認
http://localhost:8090/
dockerイメージ立ち上がった直後だとmysql動いてなかったり
初回のデータ挿入終わってなかったりするので少し待つの推奨

 

・デバック

#ログ
docker-compose logs
docker logs $container_name

#サーバーへログインして確認
docker exec -it $container_name /bin/bash

 

・動かなかったら
初回のデータ挿入がなぜかうまく動かなかった
理由不明だったのでイメージ全部消して作り直したら直った

docker rmi $image_id

 

これでうまくいきましたとさ

参考
https://qiita.com/A-Kira/items/f401aea261693c395966

関連記事:

Pocket