いい加減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入れてチュートリアルをやってみた