将.txt文件从Docker容器复制到主机

时间:2019-09-28 18:25:45

标签: dockerfile docker-cp

所以我有一个包含.txt和.csv文件的docker容器。我需要将它们复制到主机。但是我只需要复制.txt文件即可。命令sudo docker cp -a env1_1:/path/*.txt .似乎无效。是否可以使用docker cp复制特定类型的文件?我暂时找不到任何替代品。

有什么建议吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

实际上,docker cp 不支持全局模式,并且,容器路径是绝对

  

docker cp命令假定容器路径相对于容器的/(根)目录。这意味着提供初始正斜杠是可选的[…]

     

本地机器路径可以是绝对值或相对值。该命令将本地计算机的相对路径解释为相对于运行docker cp的当前工作目录。

但是,可以依靠docker exec来设计一种变通方法,并且依靠tar来实现手工制作的shell命令(假设在镜像中可用):

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)中选定的文件。