Docker Compose共享卷相对路径问题(Windows 10 Linux容器环境)
解决Windows 10 Linux容器下Docker Compose启动WordPress容器报错的问题
先别急,我碰到过好几个和你一模一样的场景——Windows 10跑Linux容器、共享了C盘,结果docker-compose启动WordPress时出问题。咱们一步步来排查:
1. 先确认Docker共享权限是否真的生效
有时候你明明勾选了C盘共享,但Docker的权限可能因为Windows密码变更、服务重启等原因失效了:
- 打开Docker Desktop,进入「Settings > Resources > File Sharing」
- 先取消C盘的勾选,点击Apply & Restart,等Docker完全重启后再重新勾选C盘,输入当前Windows用户的密码确认
- 重启完成后,再试一次
docker-compose -f wp.yml up -d
2. 检查wp.yml里的挂载路径格式
Linux容器只认正斜杠/,Windows本地路径如果处理不好很容易出挂载错误:
- 如果用相对路径,确保你是在wp.yml所在的文件夹下执行docker-compose命令,比如你的yml在
C:\wp-project里,就先cd C:\wp-project再执行命令 - 要是用绝对路径,建议换成WSL兼容的格式,比如把
C:\wp-project\wp-content写成/run/desktop/mnt/host/c/wp-project/wp-content,再挂载到容器的/var/www/html/wp-content - 举个正确的挂载示例:
volumes: - /run/desktop/mnt/host/c/wp-project/wp-content:/var/www/html/wp-content
3. 清理旧容器和缓存,解决残留问题
旧容器、卷的权限残留或者损坏是常见坑:
- 先彻底清理现有相关容器和卷(注意备份好数据!):
docker-compose -f wp.yml down -v - 再清理Docker的无用缓存:
docker system prune -af - 之后重新启动服务:
docker-compose -f wp.yml up -d
4. 切换到WSL终端执行命令(大概率能解决路径权限问题)
Windows的PowerShell/CMD有时候会和Linux容器的路径权限打架,换成WSL终端试试:
- 打开Docker Desktop的「Settings > Resources > WSL Integration」,确保你常用的WSL发行版(比如Ubuntu)是开启状态
- 打开WSL终端,cd到wp.yml所在的WSL路径(比如
/mnt/c/wp-project) - 再执行
docker-compose -f wp.yml up -d,很多时候这样就能绕过Windows侧的权限坑
5. 查看完整错误日志定位问题
如果上面的步骤都没解决,别加-d参数,直接执行:
docker-compose -f wp.yml up
这样能看到实时的完整错误输出——是挂载失败?权限被拒绝?还是镜像拉取出问题?把具体日志贴出来,就能精准定位了。
内容的提问来源于stack exchange,提问作者Brent Arias
相关产品推荐
相关产品推荐

