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

2019年3月23日

Dockerの永続化について説明します。

 

コンテナ内で作成されたデータは、そのコンテナ自体を削除すると消えてしまいます。そこでそのデータを保存し、他のコンテナからも利用できるようにするがデータの永続化です。

 

本記事では、データボリューム(Data Volume)とデータボリューム・コンテナ(Data Volume Container )による永続化をおこなってみます。

 

 

データボリューム(Data Volume)


 

まず「docker volume create」コマンドでデータボリュームを作成します。下記ではtestvolumeという名前のデータボリュームを作成しています。

 

作成したデータボリュームの一覧は「docker volume ls」で表示させることができます。

 

作成した「testvolume」にデータを永続化していくコンテナを作成します。今回はubuntuイメージを元にコンテナを作成しています。

-vオプションにおいて、作成したボリュームとコンテナ内のディレクトリを結び付け(マウント)ています。これでコンテナ内のtmpディレクトリ内のデータが永続化されます。はじめに「docker volume create」でデータボリュームを作成しましたが、-vオプションで名前を指定すればデータボリュームは同時に作成されます。

 

 

上記コマンドでコンテナ内(CONTAINER IDが917361e5a050)に入っている状態となるので、tmpディレクトリ内に適当なファイルを作成してみます。下記では実際にtmpディレクトリ内にsample.txtというファイルを作成しています。exitでコンテナを終了させます。

 

次にこの「testvolume」をマウントした別のコンテナを作成してみます。

CONTAINER IDが2a324d4a665fであるコンテナが生成されました。実際にtmpディレクトリに移動してみると永続化されているsample.txtを確認することができます。はじめに作成したコンテナを削除しても、このtestvolumeを削除しない限り永続化されたデータは残ります。

 

 

 

 

データボリューム・コンテナ(Data Volume Container )


 

「データボリューム・コンテナ」による方法は、データボリュームとマウントしているコンテナ(データボリューム・コンテナと呼ぶ)から新たにコンテナを作成する方法です。

 

 

記事はじめに作成したデータボリューム・コンテナ(CONTAINER IDが917361e5a050)から、新たにコンテナを作成してみます。

–volumes-fromオプションにデータボリューム・コンテナのCONTAINER IDもしくはNAMESを指定します。

 

上記コマンドでコンテナ内に入っている状態となるので、実際にtmpディレクトリに移動してみると永続化されているsample.txtを確認することができます。

 

 

データボリューム(Data Volume)の削除


 

「docker volume rm」で削除したいVOLUME NAMEを指定、一括で削除したい場合は「docker volume prune」を利用します。いずれもそのボリュームを利用しているコンテナが無い状態で削除できます。

 

 

ホスト側のディレクトリ自体を共有してデータを永続化する方法は下記のページをご覧下さい。

 

Dockerのバインド・マウントを利用する[-v]

 

 

関連ページ

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

 

 

LINEで送る
Pocket

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