dockerのコンテナ内のファイルを丸ごとホストにコピーしたい

tarとかで持ってくるのが楽なんだろうか?テキトーに標準出力に書き出す感じで。

$ docker run --rm <container> tar -czf - <file> > <dst>

ファイルが1つだけならcatでも良いかもしれない。あるいは小さめのファイルのものなら圧縮は不要かもしれない。

テキトーにelasticsearchのイメージでやってみる。

$ docker run --rm elasticsearch:7.14.1 tar -czf - /usr/share/elasticsearch/config > config.tar.gz
tar: Removing leading `/' from member names

上手く動いていそう。

$ tar -tf config.tar.gz
usr/share/elasticsearch/config/
usr/share/elasticsearch/config/users_roles
usr/share/elasticsearch/config/jvm.options
usr/share/elasticsearch/config/roles.yml
usr/share/elasticsearch/config/role_mapping.yml
usr/share/elasticsearch/config/elasticsearch.yml
usr/share/elasticsearch/config/log4j2.file.properties
usr/share/elasticsearch/config/log4j2.properties
usr/share/elasticsearch/config/users
usr/share/elasticsearch/config/jvm.options.d/