この文書に書いてあること
docker-backupというコンテナを使って、VOLUMEのバックアップをとります。
使ったコンテナ
このコンテナを使うことのよさなどは、本家をみてもらうとよいです。
経緯
docker private registry どうかなぁとおもって、あまり深く考えずに使いはじめました。
結果、dockerを動かすホストが増えてきているからか、意外と役に立っています。
とりあえず立てたdocker private registry が意外と便利だったのですが、、、
docker private registry v2用ウェブインターフェースを探していてるときに
以下の記事を読んで
読んだ結果
- 試してみたいなぁと思った
- イメージのDELETEもしたいしなぁと思った
以上のような理由で、docker private registryのコンテナを再起動したくなりました。
ついでにデータが docker private registry 内にあるので、できたらこれを機に分離したいなぁと思いました。
背景にある動機
以下の2つやりたいので、まずはバックアップをとりたいとおもいました。
- docker private registry のコンテナを更新、再起動
- バックアップをとり、Data Volume Containerに移行したい。(それがベストな解決策かはわかっていない。。。が、いまはこの話題ではない)
本題、バックアップ実行
以下のようなコマンドでバックアップとれます。
これを実行すると、カレントディレクトリに、backup.tar.xzが作成されます。
docker run --rm \
--volumes-from バックアップしたいコンテナ \
-v $(pwd):/backup \
boombatower/docker-backup backup
詳しい使い方は、使ったコンテナのところにある、本家のドキュメントをみてもらいたいです。
docker-backupの動き(想像)
詳しくは本家のドキュメントをよんでもらったほうがよいですが、
ソースをさらったみたところ、
docker-backup がバックアップをしたいコンテナについて
cat /proc/mounts
した結果を、調べてくれて
volume を探してうまくバックアップしてくれるようです。
docker-backupが動いているときの様子
8Gのメモリのマシン上で、docker private registry コンテナの、/var/lib/registryが9.1Gの状況で、
実際に試した感じだと、
メモリを残り100MBくらいまでつかって、そのあたりでフラフラしながら
バックアップを進めてくれるようでした。
追記(2016-05-11)
4Tくらいのコンテナのデータをバックアップしようとしたら、結構時間がかかるとのこと。
xzがかなりがんばっていた模様でした。