Dockerにおいて表題の通り。
■ 環境
- Docker for Mac 1.12-0-rc2-beta16
- Mac OSX El Capitan
■ きっかけ
他のユーザやマシン間でコンテナのやりとりをしたい場合はDockerHubを使うのが楽ではあるのだが、今回はコンテナのサイズが大き過ぎたのもあるのかTimedOutしてDockerHubにアップロードできなかった。アップロードに時間が掛かるのもあり、何度もリトライをするのは面倒なので`docker export`でファイルに出力し、そのファイルをやり取りするようにしようと方向転換。
■ export
`export`のヘルプは下記の通り。
$ docker export -h
Flag shorthand -h has been deprecated, please use --help
Usage: docker export [OPTIONS] CONTAINER
Export a container's filesystem as a tar archive
Options:
--help Print usage
-o, --output string Write to a file, instead of STDOUT
$
とりあえず実行してみる。対象のコンテナ名称は”exptest“としている。
$ docker export exptest
Cowardly refusing to save to a terminal. Use the -o flag or redirect.
$
“-o“オプションを使用するか、リダイレクトしろとのこと。再度挑戦。
$ docker export exptest > exptest.tar
時間がそれなりに掛かったが上記でexportできた。ちなみに”-o“オプションも試してみた。
$ docker export -o exptest2.tar exptest
これらでできた2つのファイルのサイズとmd5の結果を見てみる。
$ ls -l
:
-rw-r--r-- 1 withsin staff 1087947264 6 27 19:11 exptest.tar
-rw------- 1 withsin staff 1087947264 6 27 19:22 exptest2.tar
$
$ md5 exptest.tar
MD5 (exptest.tar) = c252c44d543ebbe81befe7c35d7e1966
$
$ md5 exptest2.tar
MD5 (exptest2.tar) = c252c44d543ebbe81befe7c35d7e1966
$
同じ結果となっている。満足。
以上。