ホストからDockerコンテナへの転送手段
動作中のDockerコンテナにHostからファイルを転送する方法
「Dockerコンテナからホストへ」のファイル転送は、docker cp コマンドを使用すれば可能だが、
「ホストからDockerコンテナへ」の転送手段は公式では提供されていないようだ。。。
されてました!
そこで、ssh 立てるなり、scpで転送することなどが真っ先に思いつくのだが、dockerの流儀ではない。
そこで、docker exec コマンドを駆使して、実現してみる。
公式)
$ docker exec -i 【コンテナ名】 bash -c 'cat > 【コピー先ファイル】' < 【コピー元ファイル】
実例)
既にdockerで稼働してしまっているredmineサーバに、themeを追加したくなった。
そこでHost側で仕入れてきたthemeをコンテナ側に渡す。
対象ファイル:docker host 側にあるファイル「/vagrant/farend_basic.zip」
配置先 :docker container 側「/home/redmine/redmine/public/themes/farend_basic.zip」
$ docker exec -i redmine bash -c 'cat > /home/redmine/redmine/public/themes/farend_basic.zip' < /vagrant/farend_basic.zip
成功
##【追記】
amatsus さんの情報により、上記手法は、「docker cp」コマンドでも可能となりました。
以下で可能です。
docker cp /vagrant/farend_basic.zip redmine:/home/redmine/redmine/public/themes/farend_basic.zip