web-dev-qa-db-ja.com

ワイルドカードを含むフォルダーをDockerコンテナーからホストにコピーする

コンテナー内にmongodbをダンプするバックアップスクリプトを作成します。コンテナーの外にフォルダーをコピーする必要があります。Dockercpはワイルドカードで動作しないようです。

docker cp mongodb:mongo_dump_* .

ターミナルで以下がスローされます:

デーモンからのエラー応答:lstat/var/lib/docker/aufs/mnt/SomeHash/mongo_dump_ *:そのようなファイルまたはディレクトリはありません

Cpコマンドでワイルドカードを使用するための回避策はありますか?

14

コンテナー内のフォルダーにmongoダンプファイルを作成してから、そのフォルダーをコピーできます。これは回避策です。

Docker cpコマンドでワイルドカードを使用する方法がまだないようです https://github.com/docker/docker/issues/771

私はあなたがやりたいことを処理するための最良の方法は、Dockerボリュームを使用することだと思うので、他のコマンドを使用せずにコンテナーからHostフォルダーにファイルを直接保存できます: https://docs.docker。 com/engine/userguide/containers/dockervolumes /

10
Jonathan Muller

同様の問題があり、2つのステップで解決する必要がありました。

$ docker exec <id> bash -c "mkdir /extract; mv /path/to/fileset* /extract"
$ docker cp <id>:/extract .
11
user9334670