[Docker] DockerFileでローカルにmysql環境を作る

二個前の記事では、コマンドライン上でmysqlの環境を作ったのですが、今回は練習も含め

DockerFile内に、mysql環境を作る設定を書いていきたいと思います。

 

ディレクトリ構成

  • mysql_dockerfile
    • DockerFile
    • change_default_auth.cnf

DockerFile設定

1. まず、mysqlをベースイメージに設定

2. 次に、同じディレクトリにある、 change_default_auth.cnf を コンテナ内の /etc/mysql/conf.d/.に追加。

2の手順を踏んだ理由

MySQLの8からデフォルトの認証方式が、caching_sha2_passwordというものに変わったことに起因するようで、デフォルトを従来のmysql_native_passwordにするようにconfigに書いておくことで、従来のアプリケーションからでも利用できる。

MySQL公式のDockerイメージでは、/etc/mysql/conf.d/以下にある.cnfという拡張子のファイルを読み込んでくれるようになっているので、change_default_auth.cnfにmysql_native_passwordに変更するような設定を書いて、/etc/mysql/conf.d/いかに配置。

change_default_auth.cnf

 

DockerFileを元に、imageをビルドする

 

imageを確認し、containerを作成する

完成

[おまけ]ADDとVOLUMEの違い

ADD

ADDに指定されたファイル、フォルダはビルドされ、imageの一部になる。
つまり、ビルド時に何かを追加したい時に指定する。

VOLUME

実行されているコンテナに、ローカルマシンのパスにアクセスさせることができる。
ビルド時はアクセスできない。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA