You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Windows文件复制到WSL环境中的Podman容器?

问题场景

我在Podman中启动了WordPress和MySQL容器用于测试插件,需要将本地WordPress的/uploads/文件夹复制到新实例中,但遇到了以下问题:

  • 直接通过Windows资源管理器复制时,提示You need permission to perform this action.权限错误。
  • 使用podman cp命令时因格式错误报错:
    podman cp :D:/xxx/WP/demo/uploads/ containerID:/var/www/html/wp-content/uploads
    
    错误信息:

    error rewriting "D:\xxx\WP\demo\uploads" to be relative to "/": expected root directory to be an absolute path, got "/"

  • 进入WSL环境执行复制命令,出现权限拒绝:
    wsl -d podman-machine-default
    [user@user /]$ cp -r /mnt/d/xxx/WP/demo/uploads /home/user/.local/share/containers/storage/volumes/wp_test_env_wordpress/_data/wp-content/uploads/
    
    错误信息:

    cannot create directory... permission denied

请问将Windows文件复制到Podman容器的最简方法是什么?


最简解决方法

方法1:修正podman cp命令格式

你之前的podman cp命令多了路径前的冒号,导致Podman解析Windows路径失败,去掉冒号即可正常执行:

# 使用正斜杠路径
podman cp "D:/xxx/WP/demo/uploads/" <你的容器ID>:/var/www/html/wp-content/uploads/

# 或使用转义后的反斜杠路径
podman cp "D:\\xxx\\WP\\demo\\uploads\\" <你的容器ID>:/var/www/html/wp-content/uploads/

执行前确保容器处于运行状态,替换<你的容器ID>为实际的容器ID或名称。

方法2:用tar管道绕过权限问题(适合权限严格的场景)

如果podman cp仍有权限问题,可以通过打包+管道的方式,让容器内进程处理解压,避免权限冲突:

  1. 在Windows命令行/PowerShell进入本地uploads的上级目录:
    cd D:/xxx/WP/demo/
    
  2. 执行打包+解压命令:
    tar -czf - uploads/ | podman exec -i <你的容器ID> tar -xzf - -C /var/www/html/wp-content/
    
    这个命令会将本地uploads文件夹打包,通过管道传给容器内的tar命令,直接解压到目标路径。

内容的提问来源于stack exchange,提问作者Janez Kranjski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 07:42:41