背景
sshd
等を使わずに、Dockerコンテナ上でtest-kitchenを実行したい等の理由から、
これを作ったことによって得た知見。
ちなみに逆(Guest→Host)はdocker cp
コマンドで正式にサポートされている。
前提
- Docker 1.3 or later
- tar (GNU Tar) ※Host, Guest両方
方法
docker exec
コマンドを利用してファイル転送を実現する。
簡単な説明
目的のファイル(or ディレクトリ)をtar
で固めて、
それを標準入力に流し、docker exec
にパイプで繋いでコンテナ上で展開させる。
実際のコマンド例
cd /path/to/host/target && tar cf - ./ | docker exec -i container_id tar x -C /path/to/guest/target
もう少しスマートな書き方ありそう…w
所感
-
docker exec
を運用で使ったら負け感あるけど、あるとだいぶ便利 - たぶんtarじゃなくてもできる方法は色々ある(特に単体のファイル転送とか)