目的
「さくっとローカルで検証したい」って時に使えるかも。
環境
- Max OS EL Capitan
- Docker for Mac (Version 1.12.5)
基本的にはDockerが動く環境で使えます。
※ 記事内ではsudo無しでdockerを使ってますが、環境によって異なるのでよしなに書き換えてください。
(早速)結果
- runするコマンド
cmd
$ docker run --name ${CONTAINER_NAME} -e MYSQL_ROOT_PASSWORD=${MYSQL_PASSWORD} -d mysql/mysql-server:5.7
このワンライナーでDocker Hubから、mysql-server 5.7をpullして、バックグランドで動かしてくれます。
- 立ち上がったコンテナにmysql loginするコマンド
cmd
$ docker exec -it ${CONTAINER_NAME} mysql -uroot -p${MYSQL_PASSWORD}
実際のデモ
コンテナ名 = iganari-db
password = hogehoge
で実際にやってみる。
$ docker run --name iganari-db -e MYSQL_ROOT_PASSWORD=hogehoge -d mysql/mysql-server:5.7
Unable to find image 'mysql/mysql-server:5.7' locally
5.7: Pulling from mysql/mysql-server
acdfbb1a4f2d: Pull complete
0879db9c7538: Pull complete
c47bf518d00d: Pull complete
4b2092301be6: Pull complete
Digest: sha256:06d85ad36068257137d113ede1d37623da19e91b7971068e838e8e7e1258a726
Status: Downloaded newer image for mysql/mysql-server:5.7
3b1fae616ee0763caee1b397a8ad87402529274ab30f3a15156f2d395b195260
$
$
$ docker exec -it iganari-db mysql -uroot -phogehoge
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.17 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
IPを付与して、Mysql remote login
上記だとちょっとreadmeそのままなので、コンテナにIPアドレスを付与して、プログラムからremote login出来るようにしておく。(ついでに名前解決もしてみる。)
docker用のネットワーク(192.168.56.0/24)を作成
$ docker network create --subnet=192.168.56.0/24 user_defined_nw
- IP:192.168.56.100のIPを固定して、docker run
$ docker run --name iganari-db -e MYSQL_ROOT_PASSWORD=hogehoge --net=user_defined_nw --ip=192.168.56.100 -d mysql/mysql-server:5.7
まとめ
本当にさくっと使いたいときだけ。
ただ、ローカル開発環境のDBはこれに少し手を入れたもをimageとして固めて於いて、必要な時にrunすれば十分かな〜という感じでした。
追記(2017/01)
上記の「お気軽mysql」はdbが日本語入力に対応していません。
また環境変数の関係でそもそもコンソールが日本語を受け付けません。
お気軽mysqlしたいけど、日本語はもちろん対応してるよね!って方は下記を参照して下さい。