docker 复制目录中给定扩展名的所有文件

docker copy all files in directory with given extention

我可以使用

将一个文件从 docker 容器复制到服务器
docker cp docker_session_name:/root/mydir/ .

我想知道只从 mydir 复制具有给定扩展名的文件,例如 pdf

我不认为你可以用 docker cp command

做到这一点

为此,您可以将目录安装在 docker 中,然后您可以 运行 使用正则表达式的常规 cp 命令将其复制到另一个目录。

坐骑:

docker run -d --name containerName -v myvol2:/app imageName:tag

容器内:

cp app/*.pdf /destination

看起来你不能像 Linux 那样 运行(参见

不是这样的:

docker cp docker_session_name:/root/mydir/*.pdf .

简单回答

使用这个脚本:

path="/root/mydir"
for file in $(docker exec docker_session_name sh -c "ls ${path}/*.pdf"); do
        docker cp docker_session_name:${file} .
done

归功于 话题

繁琐的答案,更易于使用(无脚本)

但是您可以在主机和所需路径之间安装绑定安装,就像在 docker run 命令中那样:

docker run -v /host/path/:/root/mydir/ my-image

然后 运行 使用通配符 *.pdfdocker run 命令中使用的主机路径 /host/path/ cp