【发布时间】:2021-09-15 11:00:53
【问题描述】:
我可以将一个文件从 docker 容器复制到服务器
docker cp docker_session_name:/root/mydir/ .
我想知道只从 mydir 复制具有给定扩展名的文件,例如 pdf
【问题讨论】:
我可以将一个文件从 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 中那样运行(参见 similar thread)
不是这样的:
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
感谢this 线程
但是,您可以像在 docker run 命令中那样在主机和所需路径之间挂载绑定挂载:
docker run -v /host/path/:/root/mydir/ my-image
然后在docker run 命令中使用的/host/path/ 的主机路径中使用通配符*.pdf 运行cp
【讨论】:
docker run 命令,那么您可以使用带有通配符的普通linux cp 命令
docker cp 命令和答案中引用的其他类似帖子的当前状态 - 这样的事情是不可能的。所以在缺乏确切的解决方案的情况下,我提出了一个不同的解决方案,它可以工作并且不会造成太多麻烦