执行docker cp从Docker容器复制文件夹至主机报错的解决咨询
Docker容器到主机的文件复制解决方案
你报错的原因是命令里的server:/server_path/格式被Docker识别成了容器名:路径的格式,所以它误以为你要在两个容器之间复制,才抛出"copying between containers is not supported"的错误。
正确的docker cp用法
直接指定主机的本地路径即可,不需要加server:前缀:
docker cp containerName:/folder_path /server_path/
- 如果是相对路径,直接写相对路径就行,比如复制到当前目录下的
local_dir文件夹:docker cp containerName:/folder_path ./local_dir/ - 如果路径包含空格,记得用引号包裹:
docker cp containerName:"/my folder" "/server target path/"
备选方法:用docker exec配合tar传输(适合大文件/复杂目录)
如果要复制的文件夹很大,或者需要过滤文件,可以用压缩打包的方式传输,效率更高:
docker exec containerName tar -czf - /folder_path | tar -xzf - -C /server_path/
这个命令会在容器内压缩目标文件夹,然后通过管道传输到主机,主机再解压到指定路径。
注意事项
- 只要容器处于存在状态(没有被删除),即使容器没运行,也可以用
docker cp复制文件 - 确保执行命令的用户对主机的目标路径有写入权限
内容的提问来源于stack exchange,提问作者shobhit raj
相关产品推荐
相关产品推荐

