環境
- docker-machine version 0.4.1
- Virtual Box 5.0.4
- Mac El Cpatian
やりたいこと
開発用にdocker上にMySQLを立てたい
1) docker machine上にデータを永続化させたMySQLを立てる。永続化させるデータはdocker-machineの/home/docker以下に置くものとする
2) タイムゾーンをJSTにする
3) ローカルにあるmy.cnfを読み込ませる
手順
再起動時にバックアップをとる
- ローカルから
docker-machine ssh
でログインする - /home/docker以下のバックアップ
cat << EOS > /var/lib/boot2docker/bootlocal.sh
echo "tar cf /var/lib/boot2docker/userdata.tar . -C /home/docker/" >> /opt/shutdown.sh
EOS
chmod +x /var/lib/boot2docker/bootlocal.sh
タイムゾーンをJSTにする
-
/var/lib/boot2docker/profile
にexport TZ="JST-9"
を追加する -
reboot
コマンドで再起動
my.cnfを用意する
/Users/hachi/tmp/mysql/my.cnf
に用意
my.cnf
[mysqld]
character-set-server=utf8
起動する
docker run --name mysql -p 3306:3306 -e "MYSQL_ROOT_PASSWORD=root" -v /Users/hachi/tmp/mysql:/etc/mysql/conf.d -v /home/docker/mysql:/var/lib/mysql -d mysql:5.6
mysql -uroot -p -h 127.0.0.1
create database test charset utf8;
show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
docker-machine内をみると
docker@default:~/mysql$ pwd
/home/docker/mysql
docker@default:~/mysql$ ls
auto.cnf ib_logfile0 ib_logfile1 ibdata1 mysql/ performance_schema/ test/
追記
実際の開発でデータを入れたらあっという間に/home/docker以下の容量を食いつぶした orz そんなデータいれるなという話ですが。
そのときはdocker-machine create --virtualbox-memory "2024" -d virtualbox default
で作る
変更前
docker@default:~$ df -h
Filesystem Size Used Available Use% Mounted on
tmpfs 896.6M 230.8M 665.9M 26% /
tmpfs 498.1M 56.0K 498.1M 0% /dev/shm
/dev/sda1 18.2G 1.0G 16.2G 6% /mnt/sda1
cgroup 498.1M 0 498.1M 0% /sys/fs/cgroup
none 464.8G 108.9G 355.9G 23% /Users
/dev/sda1 18.2G 1.0G 16.2G 6% /mnt/sda1/var/lib/docker/aufs
none 18.2G 1.0G 16.2G 6% /mnt/sda1/var/lib/docker/aufs/mnt/2c829511dc3126d6d85561715b775066b47106bc43ae607b15bd4b85d5117287
変更後
docker@default:~$ df -h
Filesystem Size Used Available Use% Mounted on
tmpfs 1.8G 230.7M 1.5G 13% /
tmpfs 1001.4M 0 1001.4M 0% /dev/shm
/dev/sda1 18.2G 1.0G 16.2G 6% /mnt/sda1
cgroup 1001.4M 0 1001.4M 0% /sys/fs/cgroup
none 464.8G 108.8G 355.9G 23% /Users
/dev/sda1 18.2G 1.0G 16.2G 6% /mnt/sda1/var/lib/docker/aufs