![[Docker]起動済みのMySQLデータを永続化させる](https://www.yukiiworks.com/wp-content/uploads/2019/08/docker-logo-2.png)
はじめに
docker-composeファイルをもらって起動して色々とやっていたんだけれども、後からMySQLのデータが永続化されていなくてDocker落としたくねぇ、、となった時のお話
MySQLデータの永続化の手順
- MySQLデータをホストにコピーする
- Dockerコンテナを落とす
- docker-compose.ymlの書き換え
- Dockerコンテナの起動
MySQLデータをホストにコピーする
MySQLのデータはコンテナ内の/var/lib/mysqlの中にあります。
まずこれをホストPC(ローカル)にコピーしてきます。
まずは以下のコマンドでMySQLコンテナのコンテナIDを調べる。
1 | docker ps |
MySQLのコンテナIDが分かったらホストPCにデータファイルをコピーするコマンドを実行します。
1 | docker cp <コンテナID>:/var/lib/mysql <コピー先のパス> |
この時はじめにコピー先のディレクトリが存在していない場合は作成しておきましょう。
ディレクトリがなければエラーになります。
Dockerコンテナを落とす
おなじみのコマンド。
1 | docker-compose down |
docker-compose.ymlの書き換え
MySQLコンテナの記述の部分に下記を追加します。
1 2 | volumes: - <MySQLデータをコピーしたパス>:/var/lib/mysql |
Dockerコンテナの起動
これまたおなじみのコマンド。
1 | docker-compose up -d |
MySQLのデータを確認するとDockerを落とす前と同様で永続化されていることがわかります!
以上です。
![[Xcode]error: unable to parse contents of file list ‘<project path>/Pods/Target Support Files/Pods-XXX/Pods-XXX-frameworks-Debug-input-files.xcfilelist’でビルドエラーの解消方法](https://www.yukiiworks.com/wp-content/uploads/2019/09/Xcode-300x191.png)
![[Python3]Enumで定義した値のリストを取得する](https://www.yukiiworks.com/wp-content/uploads/2019/11/python-logo-300x183.png)
![[Node.js]AWS Lambda上で日本現在時刻を取得する](https://www.yukiiworks.com/wp-content/uploads/2020/04/lambda30-150x150.png)
![[Android][Kotlin]EditTextのキーボードの完了ボタンを検知する方法](https://www.yukiiworks.com/wp-content/uploads/2019/10/android-studio-e1585186990750-150x150.jpg)
![[Laravel]ランダムな文字列を生成する](https://www.yukiiworks.com/wp-content/uploads/2019/05/laravel-150x150.png)
![[Flutter]debugとreleaseビルドをコードから判別する方法](https://www.yukiiworks.com/wp-content/uploads/2020/08/flutter-150x150.png)
![[Google Play Console]アップロードできませんでした Android App Bundle は署名されていません。エラーについて](https://www.yukiiworks.com/wp-content/uploads/2019/06/google-play-150x150.jpg)
![[Mac]任意のポートを使用しているプロセスを調べてKillする方法](https://www.yukiiworks.com/wp-content/uploads/2019/03/code1211IMGL1494_TP_V4-150x150.jpg)
