実際にコンテナを生成し、ボリュームのスナップショットの作成、バックアップの取得、リストアを体験してみましょう。まず、ボリューム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.