所以我有一个 docker 容器,里面有 .txt 和 .csv 文件。我需要将这些复制到主机。但我只需要复制文件 .txt 文件。该命令sudo docker cp -a env1_1:/path/*.txt .
似乎不起作用。是否可以使用 docker cp 复制特定类型的文件?我暂时找不到任何替代方案。
有什么建议么?
谢谢。
所以我有一个 docker 容器,里面有 .txt 和 .csv 文件。我需要将这些复制到主机。但我只需要复制文件 .txt 文件。该命令sudo docker cp -a env1_1:/path/*.txt .
似乎不起作用。是否可以使用 docker cp 复制特定类型的文件?我暂时找不到任何替代方案。
有什么建议么?
谢谢。
事实上,不支持 glob 模式,顺便说一句,容器路径是绝对的:docker cp
该
docker cp
命令假定容器路径相对于容器的/
(根)目录。这意味着提供初始正斜杠是可选的 [...]本地机器路径可以是绝对值或相对值。该命令将本地机器的相对路径解释为相对于当前运行的工作目录
docker cp
。
但是,可以设计一种解决方法,依赖于docker exec
,以及一个手动制作的 shell 命令,依赖于tar
双方的命令(假设它在图像中可用):
sudo docker exec env1_1 sh -c 'cd /path && tar cf - *.txt' | tar xvf -
或者如果需要:
sudo docker exec env1_1 sh -c 'cd /path && tar cf - *.txt' | ( cd /dest/path && tar xvf - )
在这里,特殊文件名-
表示 STDOUT(或分别为 STDIN)。
通常的免责声明:最终tar
命令将覆盖当前文件夹(或第二个示例)中的选定文件,恕不另行通知。/dest/path