第12回 Docker環境のバックアップツール「Convoy」を試す古賀政純の「攻めのITのためのDocker塾」(2/3 ページ)

» 2015年12月09日 07時30分 公開

Convoyを使ってボリュームをバックアップしてみる

 実際にコンテナを生成し、ボリュームのスナップショットの作成、バックアップの取得、リストアを体験してみましょう。まず、ボリュームvol01を持つDockerコンテナを起動します。


# docker run -itd -v vol01:/cdir01 --volume-driver=convoy --name test01 -h test01 centos:centos7.1.1503 /bin/bash

 -vオプションで指定した「vol01:/cdir01」は、ボリュームvol01をコンテナ内の/cdir01ディレクトリに割り当てるという意味になります。Convoyを利用する場合は、--volume-driver=convoyが必要です。

 コンテナtest01が起動したら、コンテナ内の/cdir01ディレクトリにテスト用のファイルtest.txtを作成します。今回ファイルの中身は、「Hello Convoy.」としました。スナップショットの挙動を理解するため、中身のテキストは、区別が付きやすく、簡潔で分かりやすい文章で記述しておいてください。


# docker exec -it test01 /bin/bash
[root@test01 /]# echo "Hello Convoy." > /cdir01/test.txt
[root@test01 /]# cat /cdir01/test.txt
Hello Convoy.
[root@test01 /]# exit
#

 コンテナ内の/cdir01ディレクトリにテスト用のファイルを作成したら、ボリュームvol01のスナップショットを取得します。ここでは、スナップショットの名前をsnap0001にします。


# convoy snapshot create vol01 --name snap0001

 作成したスナップショットsnap0001から、ボリュームをホストOS上の/backupdirディレクトリにバックアップします。


# mkdir -p /backupdir
# convoy backup create snap0001 --dest vfs:///backupdir/

 以上でボリュームvol01のスナップショットsnap0001を使って、ホストOS上にバックアップが取得できました。

バックアップ済みボリュームを再利用する

 バックアップしたボリュームvol01を使って、新たにコンテナtest02を起動します。


# docker run -itd -v vol01:/cdir01 --volume-driver=convoy --name test02 -h test02 centos:centos7.1.1503 /bin/bash

 コンテナtest02において、ボリュームvol01に関連付けられた/cdir01ディレクトリ内のテスト用のファイルtest.txtの中身を確認します。


# docker exec -it test02 /bin/bash
[root@test02 /]# cat /cdir01/test.txt
Hello Convoy.
[root@test02 /]#

 コンテナtest02でも、問題なくボリュームを利用できることがわかります。

スナップショットの作成

 コンテナtest02において、ボリューム内に保存されているファイルの中身を「Hello Docker.」に上書きします。


[root@test02 /]# echo "Hello Docker." > /cdir01/test.txt
[root@test02 /]# exit
#

 test.txtの中身を上書き後、ボリュームvol01のスナップショットを再び作成します。ここでは、スナップショットの名前をsnap0002にします。


# convoy snapshot create vol01 --name snap0002

 作成したスナップショットsnap0002から、ボリュームをバックアップします。


# convoy backup create snap0002 --dest vfs:///backupdir/

 バックアップしたボリュームvol01を利用し、新たにコンテナtest03を起動し、test.txtの中身を確認します。


# docker run -itd -v vol01:/cdir01 --volume-driver=convoy --name test03 -h test03 centos:centos7.1.1503 /bin/bash
 [root@c71n93 ~]# docker exec -it test03 /bin/bash
[root@test03 /]# cat /cdir01/test.txt
Hello Docker.
[root@test03 /]#

 上書きした内容のtest.txtが見えます。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ