docker exportコマンドの使い方(実例付)CE対応


 docker exportコマンドの使い方を解説します。Docker CE ver17.12.1に対応してます。

 このコマンドは、コンテナ内のファイルをtar形式で出力することが出来ます。出力先は、tarファイルと標準出力の二つから選べます。

 出力したtarファイルは、docker importコマンドを使用して、Dockerイメージを作成することが可能です。

 それでは以下で詳細に解説いたします。

 

docker exportコマンドのフォーマットとオプション

フォーマット

docker export [オプション] [コンテナ]

 

主なオプション一覧

-o, --output=""
指定したファイルに出力する

■ 本記事の目次に戻る ■

docker exportコマンドの主な使い方

 以下の実例は、CentOSの公式イメージにより起動したコンテナ(testvm)を使用します。コンテナは「docker run -d --name testvm centos init」で起動します。

 

コンテナ内のファイルをtar形式で出力する

 以下の起動中のコンテナがあります。

$ docker ps
CONTAINER ID  IMAGE   COMMAND CREATED            STATUS             PORTS  NAMES
4df9ea1be8f5  centos  "init"  About a minute ago Up About a minute         testvm

 これから、このコンテナ内にファイルを作成し、その後、このコンテナ内のファイルをtarファイルに出力したいと思います。

 まず、このコンテナのルートディレクトリ上に、ファイル「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コマンドにて、コンテナ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が含まれていることが確認できました。

(注意)
docker exportコマンドにてtar形式で出力されるのは、コンテナ内のファイルのみで、データボリューム(コンテナ起動時に-vオプションで指定した領域やDockerfileにてVOLUME指定した領域など)は対象外です。ご注意下さい。

■ 本記事の目次に戻る ■

コンテナ内のファイルをtarファイルに直接出力する

 オプションを付けずにdocker exportコマンドを実行した場合の出力先は、標準出力ですが、「-o」オプションでファイルを指定することにより、指定したファイルに直接出力することが出来ます。

 docker exportコマンドにて、コンテナtestvm内のファイルを、testvm-2.tarファイルに直接出力する場合は、以下を実行します。

$ docker export -o testvm-2.tar testvm

 

  以上でdocker exportコマンドの紹介を終わります。

 ご指摘、ご要望などが御座いましたらコメントいただけるとうれしいです。

 他のDockerコマンドの実例付紹介記事は、本サイト内の別記事「Dockerのコマンドの一覧(ver1.12対応版)(オリジナルな実例付き)」をご参照ください。

 ご訪問ありがとうございました!


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください