本記事はDocker ver24.0.7の環境で確認しています。
このコマンドは、コンテナ内のファイルをtar形式で出力することが出来ます。
出力先は、tarファイルと標準出力の2種類です。
出力したtarファイルは、docker importコマンドを使用して、Dockerイメージを作成することが可能です。
docker exportコマンドのフォーマットとオプション
フォーマット
docker export [オプション] [コンテナ]
主なオプション一覧
オプション | 概説 |
---|---|
-o, --output="" | 指定したファイルに出力する |
コマンド例
$ docker export testvm > testvm.tar
$ docker export -o testvm-2.tar testvm
docker exportコマンドの主な使い方
以下で実例をまじえたコマンドの使い方を解説していきたいと思います。
基本事項の解説
docker exportコマンドは、コンテナ内のファイルをtarファイルに出力します。
対象コンテナが起動中でも停止中でも、docker exportコマンドを実行することができます。
出力したtarファイルをコンテナのバックアップとして利用するのでしたら、コンテナが停止中のほうが都合が良いでしょう。
docker exportコマンドにてtar形式で出力されるのは、コンテナ内のファイルのみで、データボリューム(コンテナ起動時に-vオプションで指定した領域やDockerfileにてVOLUME指定した領域など)は対象外です。ご注意下さい。
コンテナ内のファイルをtar形式で出力する
検証用のコンテナを起動して、コンテナ内にファイルを作成して、そのコンテナの内容をdocker exportコマンドを使用してtar形式で出力してみます。
以下の起動中のコンテナがあります。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS
PORTS NAMES
09b4ef7cfd1b ubuntu "/bin/bash" About a minute ago Up About a minute
testvm
まず、このコンテナのルートディレクトリ上に、ファイル「test-vm.txt」を作成します。
$ docker exec testvm touch /test-vm.txt
$ docker exec testvm ls -l /test-vm.txt
-rw-r--r-- 1 root root 0 Oct 29 03:07 /test-vm.txt
docker exportコマンドでコンテナの内容をtarファイルに出力してみましょう。
コンテナtestvm内のファイルを標準出力経由でファイルにリダイレクトして出力します。
$ docker export testvm > testvm.tar
以下のコマンドで、出力したtarファイルの中に、作成したファイルtest-vm.txtが存在することを確認します。
$ tar tvf testvm.tar | grep test-vm.txt
-rw-r--r-- 0/0 0 2016-10-29 12:07 test-vm.txt
docker exportコマンドにて出力したtarファイル内に、事前に作成したファイルtest-vm.txtが含まれていることが確認できました。
コンテナ内のファイルをtarファイルに直接出力する
オプションを付けずにdocker exportコマンドを実行した場合の出力先は標準出力ですが、「-o」オプションでファイルを指定することにより、指定したファイルに直接出力することが出来ます。
docker exportコマンドにて、コンテナtestvm内のファイルを、testvm-2.tarファイルに直接出力する場合は、以下を実行します。
$ docker export -o testvm-2.tar testvm
おわりに
以上でdocker exportコマンドの紹介を終わります。
ご指摘、ご要望などが御座いましたらコメントいただけるとうれしいです。
他のDockerコマンドの実例付紹介記事は、本サイト内の別記事「Dockerコマンドの一覧(オリジナルな実例付き)」をご参照ください。
ご訪問ありがとうございました!
コメント