docker cpコマンドを使う場合にはまりそうなポイントがあるのでメモ
詳しくはこちら
http://docs.docker.com/reference/commandline/cli/#cp
コンテナ⇒ホストへファイルコピーしてみる
/test.txtファイルを作成するコンテナ立ち上げる
$ docker run -i -P centos:centos7 touch /test.txt
コンテナIDを調べ、docker diffコマンドで/test.txtが追加されたことを確認する
http://docs.docker.com/reference/commandline/cli/#diff
$ docker ps -al
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3143f962866d centos:centos7 touch /test.txt 8 seconds ago Exited (0) 8 seconds ago hopeful_pare
$ docker diff 3143f962866d
A /test.txt
docker cpコマンドでコンテナ内の/test.txtをホストの/test.txtへコピー
$ docker cp 3143f962866d:/test.txt /test.txt
正しくコピーできたかどうかを確認
$ ls -al /
....
drwxr-xr-x 2 root root 4096 10月 2 14:49 2014 test.txt
....
ん? あれ?
$ ls -al /test.txt/
-rw-r--r-- 1 root root 0 10月 2 14:48 2014 test.txt
そう、、、/test.txtディレクトリの中にtest.txtがコピーされてしまうんです
ホスト側のパスはディレクトリだとはマニュアルには書いてない気がするんだけども。。。
再度、パラメータを変更しdocker cpコマンドを実行し確認
$ docker cp 3143f962866d:/test.txt /
$ ls -al /
....
-rw-r--r-- 1 root root 0 10月 2 14:51 2014 test.txt
....
めでたく目的の場所へファイルがコピーされました。