Dockerの世界におけるバックアップとリストアは、どのようなものなのでしょうか。罠は存在しないのでしょうか。まず、Dockerでのバックアップ/リストアの世界を少しだけのぞいてみましょう。Docker環境では、主に以下の4つの基本コマンドが用意されています。
それぞれの使い方をみていきましょう。docker exportは、コンテナのファイルシステムをtarアーカイブとして保存するコマンドです。具体的には以下のような使い方になります。まず、バックアップ対象となるコンテナtest01を起動します。今回は、CentOS 7.1のDockerイメージからコンテナを起動します。
# docker run -itd --name test01 -h test01 centos:centos7.1.1503 /bin/bash # docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f0aaeddbe988 centos:centos7.1.1503 "/bin/bash" 7 seconds ago Up 2 seconds test01
稼働しているコンテナtest01のファイルシステムをtarアーカイブとして保存します。
# docker export test01 > test01.tar
取得したtarアーカイブのファイルサイズを確認してみましょう。
# ls -lh test01.tar -rw-r--r--. 1 root root 211M 11月 6 01:00 test01.tar
211Mバイトのtarアーカイブであることが分かります。このtarアーカイブの中身を確認してみましょう。
# tar tvf test01.tar -rwxr-xr-x 0/0 0 2015-11-06 00:58 .dockerenv -rwxr-xr-x 0/0 0 2015-11-06 00:58 .dockerinit lrwxrwxrwx 0/0 0 2015-03-31 01:57 bin -> usr/bin drwxr-xr-x 0/0 0 2015-11-06 00:58 dev/ -rwxr-xr-x 0/0 0 2015-11-06 00:58 dev/console lrwxrwxrwx 0/0 0 2015-03-31 01:55 dev/fd -> /proc/self/fd crw-rw-rw- 0/0 1,7 2015-03-31 01:55 dev/full crw-rw-rw- 0/0 1,3 2015-03-31 01:55 dev/null crw-rw-rw- 0/0 5,2 2015-03-31 01:55 dev/ptmx ... ...
このように、Dockerコンテナのファイルシステムがtarアーカイブとして得られたことが分かります。すなわち、Dockerコンテナのファイルシステムをtarアーカイブとしてバックアップできたことを意味します。このtarアーカイブを別の物理サーバ(今回、別の物理サーバのホスト名をsvr02とし、svr02のコマンドプロンプトを「svr02 #」で表すとします)で稼働するDocker環境にscpコマンドなどでコピーし、Dockerイメージとして登録できるか確認してみましょう。docker exportで得られたtarアーカイブは、docker importコマンドで、再びDockerイメージとして登録することができます。
# scp test01.tar svr02:/root/ svr02 # cat test01.tar |docker import - centos:centos7.1.1503 svr02 # docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE centos centos7.1.1503 0f64c9eca0c0 42 seconds ago 212.1 MB
ファイルシステムを固めたtarアーカイブからDockerイメージにインポートできましたので、Dockerコンテナとして起動できるかを確認します。
svr02 # docker run -itd --name test01 -h test01 centos:centos7.1.1503 /bin/bash
このように、docker exportとdocker importを使えば、稼働中のDockerコンテナのファイルシステムをtarアーカイブでバックアップし、別のサーバでDockerイメージとして登録し、リストアすることができます。ちなみに、このdocker importは、今回の例でご紹介したtar形式以外にも、tar.gz形式、tgz形式、bzip形式、tar.xz形式、txz形式に対応しています。
Copyright © ITmedia, Inc. All Rights Reserved.