Docker MySQLのバージョン変更する方法


はじめに

Docker MySQLのバージョンを 8.0 から 5.7 に下げる際に苦戦したので、一連の流れをまとめました。

Laradockを用いてDocker上でLaravelを動かす環境を作成しました。

MySQLバージョンを変更する一連の流れ

laradockにあるファイルのMySQLのバージョンを 5.7 に変更します。

.env
### MYSQL #################################################
MYSQL_VERSION=5.7

コンテナを停止し、statusexited になっているのを確認。
mysqlのコンテナを削除。


$ docker-compose stop
$ docker ps -a
$ docker rm コンテナID(mysql)

MYSQLのバージョンを変更する場合は、 DATA_PATH_HOST で設定したフォルダを削除して、イメージを作成し直す必要があるらしい。
そのフォルダは下記コマンドで参照出来る。

$ cat .env | grep DATA_PATH_HOST

DATA_PATH_HOST=~/.laradock-アプリ名/data (人によってバラバラ。)

そのフォルダを削除。

$ rm -rf ~/.laradock-アプリ名/data

次にイメージを削除するのだが、
「dataが削除されますがよろしいですか?」 的な確認文が恐らく出てくるので良ければ y で enter。

$ docker images
$ docker rmi イメージID(laradock_mysql) -f

キャッシュを消し再度ビルド。

$ docker-compose build --no-cache mysql

最後に statusup になっているか。
なっていれば mysql のバージョンを確認し 5.7系になっていればOK。

$ docker ps -a
$ docker-composer exec mysql mysql --version

以上で、動くはずです。

Dockerを勉強し始めたばかりで、説明が大雑把なので
わかりにくい箇所や、疑問点など。
また、勉強する上で参考になったサイトや技術書など教えていただけると幸いです。