2018/07/15

Docker Image の backup と restore

さて、Docker Registry を立てたは良いものの、マシンが壊れたりすると悲しい事態になります。
Build 元と Registry で二重になってはいるのですが、両方が同じマシンだと悲しい事態が発生する可能性がありますね。
と、いうことで Build した Docker の Image をファイルに書き出したり、そのファイルからイメージを復元します。


環境

  • OS: CentOS Linux release 7.4.1708 (Core)
  • Docker: version 1.13.1, build 774336d/1.13.1
  • Kernel: 3.10.0-693.5.2.el7.x86_64


Docker Image をファイルへバックアップする

Docker そのものはファイル群を /var/lib/docker の下に持ってます。
Image は default だと overlay2 で作成されます。
overlay2 は差分でファイルを管理するファイルシステムなので、そういったメタ情報もバックアップしないといけない。
つまりは cp とか rsync だと事故る可能性があります。

さて、何を使うのが正しいかと言えば公式です。具体的には docker save コマンド
Image を構成する全レイヤをきちんと tar に書き出してくれます。
実行例として、hogehoge Image をバックアップするのはこんな感じ。
  • $ docker image save hogehoge > backup.tar
この tar をバックアップ先 HDD 等に持っていけば良い。


Docker Image をファイルから復元する

バックアップする方法は分かりました。
次はバックアップからの復元。
docker load コマンドを使います。具体的には
  • $ docker image load < backup.tar
で終わり。
Image の repository name や tag も tar に入っているので、それらの情報も全部復元されます。楽。


参考

0 件のコメント:

コメントを投稿