Dockerコンテナへローカルファイルのダンプをコピーしてリストアする


私自身の覚えが良くないのもあり、何度も複数コマンドをググって辛みだったため、備忘録として。
まだエンジニアとして8ヶ月ですので、何かミスなどあればマサカリいただければと。

1. ローカルファイルディレクトリへ移動

cd your/local/dump

2. (docker起動中で)dockerのデータベースコンテナのIDを調べる

コンテナIDは 「23fd80dl」のような文字列です。

docker ps

3. ローカルからコンテナへコピーする

docker cp ローカルダンプファイル コンテナ名:/ダンプファイル名

例えばこんな感じ

docker cp qiita.20200316.dump  コンテナ名:/tmp/qiita.20200316.dump

4. 起動中のデータベースコンテナに入る

docker-composeを利用していて、かつ、bashの場合(docker-compose.yml直下で)

docker-compose exec データベースサービス名 bash

5. ダンプファイルをcpしたディレクトリへ移動

3.で /tmpへコピーしたので移動

cd tmp

6. ダンプする

lsしたら、dockerコンテナへコピーしたダンプファイルが直下に見えることを確認してください。

mysql -u ユーザー名 -pパスワード -D データベース名 < ダンプファイル名

以上です〜