【问题标题】:Copy .txt files from docker container to host将 .txt 文件从 docker 容器复制到主机
【发布时间】:2019-09-28 18:25:45
【问题描述】:

所以我有一个 docker 容器,里面有 .txt 和 .csv 文件。我需要将这些复制到主机。但我只需要复制文件 .txt 文件。命令sudo docker cp -a env1_1:/path/*.txt . 似乎不起作用。是否可以使用 docker cp 复制特定类型的文件?我暂时找不到任何替代方案。

有什么建议吗?

谢谢。

【问题讨论】:

    标签: dockerfile docker-cp


    【解决方案1】:

    确实,docker cp 不支持 glob 模式,顺便说一句,容器路径是绝对的

    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)。

    【讨论】:

      猜你喜欢
      • 2014-03-29
      • 2015-07-08
      • 2014-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多