[Docker]起動済みのMySQLデータを永続化させる

はじめに

docker-composeファイルをもらって起動して色々とやっていたんだけれども、後からMySQLのデータが永続化されていなくてDocker落としたくねぇ、、となった時のお話

MySQLデータの永続化の手順

  • MySQLデータをホストにコピーする
  • Dockerコンテナを落とす
  • docker-compose.ymlの書き換え
  • Dockerコンテナの起動

MySQLデータをホストにコピーする

MySQLのデータはコンテナ内の/var/lib/mysqlの中にあります。
まずこれをホストPC(ローカル)にコピーしてきます。
まずは以下のコマンドでMySQLコンテナのコンテナIDを調べる。

MySQLのコンテナIDが分かったらホストPCにデータファイルをコピーするコマンドを実行します。

この時はじめにコピー先のディレクトリが存在していない場合は作成しておきましょう。
ディレクトリがなければエラーになります。

Dockerコンテナを落とす

おなじみのコマンド。

docker-compose.ymlの書き換え

MySQLコンテナの記述の部分に下記を追加します。

Dockerコンテナの起動

これまたおなじみのコマンド。

MySQLのデータを確認するとDockerを落とす前と同様で永続化されていることがわかります!

以上です。

おすすめの記事