- 1.Dockerのセットアップ
- 2.Docker環境でMySQLを使用する
1.Dockerのセットアップ
- 以下のページにDocker関連のノート(Dockerの導入を含む)をまとめています。
2.Docker環境でMySQLを使用する
2-1.MySQLサーバのDockerイメージをダウンロードする
2-1-1.DockerHubにあるMySQLのDockerイメージを検索する
実際に使用するコマンドは以下になります。
docker search mysql
上記コマンドの実行結果画面が以下になります。
※ OFFICIAL
にOK
がついているものがDocker社の認定イメージです。
ちなみに、DockerHub上での上記イメージの紹介ページは mysql/mysql-server になります。
2-1-2.DockerHubにあるMySQLのDockerイメージをダウンロードする
実際に使用するコマンドは以下になります。(ここではMySQL 8.0
を指定します。)
docker pull mysql/mysql-server:8.0
上記コマンドの実行結果画面が以下になります。
2-1-3.ダウンロードしたDockerイメージを確認する
実際に使用するコマンドは以下になります。
- docker images
というコマンドでダウンロード済みのDockerイメージの一覧を表示することができます。
docker images
上記コマンドの実行結果画面が以下になります。
2-2.Dockerイメージをコンテナ化し起動する
2-2-1.コンテナ化して起動する
実際に使用するコマンドは以下になります。
docker run --name=mysql -d mysql/mysql-server
上記コマンドの実行結果画面が以下になります。
2-2-2.起動したコンテナを確認する
実際に使用するコマンドは以下になります。
docker ps
上記コマンドの実行結果画面が以下になります。
2-3.MySQLサーバにコンテナ内部から接続する
2-3-1.コンテナ上のMySQLサーバーに接続するためのパスワードを調べる
実際に使用するコマンドは以下になります。
// Linuxの場合は以下になります docker logs mysql1 2>&1 | grep GENERATED // Windows(コマンドプロンプト)の場合は以下になります docker logs mysql1 2>&1 | findstr GENERATED
上記コマンドの実行結果画面が以下になります。 ※ Windows環境での実行結果です。
2-3-2.調べたパスワードを用いてコンテナ上のMySQLサーバーに接続する
実際に使用するコマンドは以下になります。
// 最初にコマンドを入力 docker exec -it mysql mysql -u root -p // 次に[パスワード]を入力 4t53fOzeJ(elZIpSUgAwUG70rUl
上記コマンドの実行結果画面が以下になります。
2-3-3.MySQLのコマンドを実行してみる(エラーになります)
- 最初にパスワードを変更する必要があります。
- パスワードを変更せずに利用しようとすると以下の警告が表示されます。
実際に使用するコマンドは以下になります。
mysql> show databases; ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
実際の結果画面が以下になります。
2-3-4.初期パスワードを変更する
パスワードは以下の条件を満たす必要があります。
項目 | 条件 |
---|---|
パスワード長 | 8文字以上 |
大文字小文字 | それぞれ1文字以上 |
数字 | 1文字以上 |
記号 | 1文字以上 |
その他 | ユーザー名と同じでない |
実際に使用するコマンドは以下になります。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '********';
実際の結果画面が以下になります。
2-3-5.MySQLのコマンドを実行してみる(今度は成功する)
mysql> show databases;
実際の結果画面が以下になります。
2-4.コンテナを停止し削除する
// 起動しているコンテナの停止 docker stop mysql // 停止したコンテナの起動 docker start mysql // コンテナの再起動 docker restart mysql // 起動しているコンテナの停止 docker stop mysql // コンテナの削除 docker rm mysql