Docker-MySQLのデータボリュームによる永続化[volume]

2018年12月31日

volumeという機能を利用して、データボリュームによるMySQLの永続化について説明します。

 

開発環境
macOS Mojava バージョン10.14
Docker Desktop Version 2.0.0.0-mac81 (29211)

 

 

関連ページ

DockerでMySQLを利用する

 

volumeによるマウント機能によって、イメージやコンテナを削除してもデータを永続化することができます。つまり再度コンテナを作成しても以前に登録したデータを利用することが可能です。上記の関連ページでは下記コマンドによってMySQLコンテナを生成しましたが、すでにvolumeは作成されています。

 

上記コマンドの後にdocker volume lsでvolumeの一覧を見ることができます。「VOLUME NAME」がvolume名です。イメージやコンテナを削除しても、このvolumeは残っています。

 

mysqlコンテナ(–nameのコンテナ名)内でデータベースやテーブルを生成した後に、そのコンテナを削除しても-vオプションにVOLUME NAMEを指定して再度コンテナを生成すれば、永続化されたデータを利用することが可能です。

 

docker inspect [VOLUME NAME]で指定したvolumeの詳細を表示させることができます。

 

 

コンテナ作成時に-vオプションでVOLUME NAMEを自分で設定することもできます。

上記の-v mydb:/var/lib/mysql において、mydbが新しく追加されたVOLUME NAMEとなります。/var/lib/mysql は作成されたコンテナ内のマウント先のパスとなり、ここにvolumeが割り当てられます(マウントされる)。

 

イメージやコンテナを削除した後でも、再度下記コマンドのように-vオプションにvolumeを設定すれば永続化されたデータを利用することができます。

 

 

docker volume createによる作成


volumeは「docker volume create」であらかじめ作成しておくことも可能です。下記ではmyvolumeという名前のvolumeを作成しています。

下記のように指定してコンテナを作成します。

 

 

volumeの削除


今までの説明の通り、volumeはイメージやコンテナを削除してもどんどん蓄積されていきます。定期的に「docker volume rm」で削除しても良いVOLUME NAMEを指定して削除をおこないます。

現在使用していないvolumeを一括して削除することも可能です。

 

 

関連ページ

Data Volume Container について [Dockerの永続化]

 

 

LINEで送る
Pocket

Copyright © 2019 思考の葉 All Rights Reserved.  プライバシーポリシー