いい加減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
関連記事:
- DockerのMySQLにローカルからアクセスする
- no matching manifest for linux/arm64/v8 in the manifest list entries
- MacにDocker入れてチュートリアルをやってみた