こんなとき使う
mysqlコンテナを立てた。
dumpを取りたい。
他のDBにデータを移したい。そんなとき。
コマンド
docker exec -it container_name-mysql bash -c 'MYSQL_PWD=password mysqldump -u user db_name' 1> sql.dump
内容
docker exec -it container_name-mysql xxx
でコンテナにxxxのコマンドを、container_name-mysqlで実行する。
bach -c
で、bashに次に指定したコマンドを実行させます
MYSQL_PWD=password mysqldump -u user db_name' 1> sql.dump
、mysqldumpでdumpを取りますが、パスワードを変数に渡しています。
コマンドで -ppassword
としてもいいですが、そうすると、パスワードをコマンド内に書いてしまうのは良くないというworningがsql.dumpに書き込まれてしまうので、変数に逃してやってます。