bohebohe / toolbox

bohelabo's app and infra toolbox
0 stars 0 forks source link

dockerでMySQL #1

Closed bohebohe closed 8 years ago

bohebohe commented 8 years ago

MySQLのストレージイメージを作成 データ保持用のコンテナの作成

docker build -t hoge/mysql-storage .

作成したdockerイメージを元にデータボリュームコンテナを作成します。 コンテナの作成

docker create --name mysql-storage  hoge/mysql-storage 
3210645b85c815509d8df47d593b3056448352c1bcfe0550a5045de1885bc057

MySQLサーバコンテナを作成して 上記のボリュームコンテナをマウントさせます。

Mysql公式のDockerイメージでは/etc/mysql/conf.d配下にある*.cnfを全て読み込むようになっているので、自分の設定として必要な部分はconfに記述してマウントしておくこと。

bohebohe.cnf

[client]
default-character-set=utf8

[mysqld]
character-set-server = utf8
skip-character-set-client-handshake
collation-server = utf8_general_ci
init-connect = SET NAMES utf8

[mysqldump] 
default-character-set = utf8

[mysql] 
default-character-set = utf8

MySQLサーバの始動

docker run -v $(pwd)/conf:/etc/mysql/conf.d --volumes-from mysql-storage --name mysql-server -p 13306:3306 -e MYSQL_ROOT_PASSWORD=password -e MYSQL_USER=bohebohe -e MYSQL_PASSWORD=password -d mysql

6be790d5a9faad0de3c3670b80696e724ba57416d15bc64daa69ad5a7fa0874e
 --volumes-from mysql-storage

って所でマウントしていますね。

バックアップ

docker run --rm --volumes-from mysql-storage -v $(pwd):/backup hoge/mysql-storage tar cvf /backup/backup.tar /var/lib/mysql

リストア

docker run --rm --volumes-from mysql-storage -v $(pwd):/backup hoge/mysql-storage tar xvf /backup/backup.tar

ここにデータをいれたいんだけどどうすれば・・。

bohebohe commented 8 years ago

どうも、普通にexecコマンドでいけそうな気配 http://depressiverobot.com/2015/02/19/mysql-dump-docker.html

 docker exec -i mysql-server  mysql -uroot -ppassword < scraping.sql

で、インポートができたっぽい。