概要
ホストからコンテナ(が持ってるvolume)へのコピーはdocker cp
でできます。
しかしホストから直接volume単体にコピーするのはどうすれば良いのだろう?と思って調べたところ地味にサポートされていなかったのでメモとして残します。
環境
- Docker v18.03.1-ce
方法
こちらで議論されてました。
issue自体は関連issueでどうするか進める、という結論であとはワークアラウンドが書かれています。
※議論を進めているissueも実装が難しい割に簡単なワークアラウンドがあるので置いておきますで止まってます
ワークアラウンド
以下です。
$ docker container create --name dummy -v myvolume:/root hello-world $ docker cp ~/myfile.txt dummy:/root/myfile.txt $ docker rm dummy
つまり一度コンテナを作ってしまえばdocker cp
が使えるので解決できるわけです。
コンテナを作って削除すれば、volumeだけ残るので結果的にやりたいことが実現できるわけですね。
またホストからコピーしたvolumeを作るだけなのでdocker run
でわざわざ起動せずとも、docker container create
で済みます。