ざっくり手順は以下の通り
この例では”dbstore”コンテナの”/dbdata”ボリュームをバックアップしようとしています。
“–volumes-from”オプションは指定したコンテナにマウントされているVolumeを捨てべマウントします。マウント先も同じになっているはずです。
“‐‐rm”で作成される無名コンテナの”/dbdata”に、”dbstore”コンテナの”/dbdata”ボリュームをマウントします。
“-v”で指定しているホスト側ディレクトリはバックアップデータをホストに提供するためです。
次にバックアップデータを”dbstore2″に展開しようとしています。
無名コンテナに”–volumes-from”オプションで”dbstore2″コンテナと接続します。
“-v”オプションにあるホストのバックアップデータを展開することでリストアしています。
“–strip”オプションについては不明です。多分”–strip-components”オプションに名称が変わっている?
Volumeごとにバックアップを作成することが前提になっているかと思います。自動でバックアップ&リストアしてくれるシェルスクリプトでも作成したいところだね!
# 以下のコンテナが起動していたとする
docker run -v /dbdata --name dbstore ubuntu /bin/bash
# 以下のコマンドでボリュームのバックアップを確保
docker run --rm --volumes-from dbstore -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata
# 以下のコンテナにバックアップを展開したいものとする
docker run -v /dbdata --name dbstore2 ubuntu /bin/bash
# 以下のコマンドでバックアップを展開
docker run --rm --volumes-from dbstore2 -v $(pwd):/backup ubuntu bash -c "cd /dbdata && tar xvf /backup/backup.tar --strip 1"