
Docker で Mysql を使ったローカル環境を構築
docker mysql
Docker Image のダウンロードと起動
mysql の docker image をダウンロードしてコンテナを作成します。
1.docker hub からmysqlのイメージを取得します。
# mysql最新版のイメージを取得しています
docker image pull mysql:latest
2.「sample」というボリュームを作成します。
$ docker volume create sample
3.コンテナを作成して起動します。
$ docker container run --name sample-mysql -v sample:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=samplepassword -d mysql:latest
docker run (option)
4.起動しているか確認します。
$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
eb523eee5eb8 mysql:latest "docker-entrypoint.s…" 56 seconds ago Up 56 seconds 3306/tcp, 33060/tcp sample-mysql
コンテナに接続してサンプルデータベースの作成
作成したmysqlコンテナに入って、永続化のサンプルデータを作成します。
1.コンテナに接続
$ docker exec -it sample-mysql bash
# git bash 等の場合、先頭に winpty を付ける必要がある
# winpty docker exec -it sample-mysql bash
2.mysqlに接続
$ mysql -p
3.mysqlのコマンドを使用してデータベース、テーブル、インサートを行う
# データベース作成
create database sample;
# 作成したsampleを指定
use sample;
# sampleテーブル作成
create table sample(id int, name varchar(20));
# データインサート
insert into sample(id, name) values (1,"tanaka");
# インサートデータの確認
select * from sample;
+------+--------+
| id | name |
+------+--------+
| 1 | tanaka |
+------+--------+
# mysql コマンド終了
exit
4.mysql コンテナから出ます。
$ exit
データの永続化の確認
上記で作成したコンテナでインサートしたデータが永続化されているかを確認します。
1.コンテナを停止させます。
$ docker container stop sample-mysql
2.コンテナを作成・起動します(1回目とは別のコンテナ名で)
$ docker container run --name sample-mysql2 -v sample:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=samplepassword -d mysql:latest
3.コンテナに接続(1回目とは別のコンテナ名で)
$ docker exec -it sample-mysql2 bash
4.mysqlに接続
$ mysql -p
5.データベースの中身を確認
# sampleデータベースを指定
use sample;
# インサートデータの確認
select * from sample;
+------+--------+
| id | name |
+------+--------+
| 1 | tanaka |
+------+--------+
# mysql コマンド終了
exit