MacOS Ventura 13.1中Docker Compose绑定卷为空问题求助
MacOS Ventura下Docker Compose绑定卷为空的排查与解决方法
在MacOS Ventura(v13)中使用Docker Compose创建绑定卷时,容器内的挂载目录始终为空,但相同的docker-compose.yml配置在MacOS 12.4和12.6中可以正常同步主机目录内容,推测是Ventura的权限变更导致该问题。
用户配置与现象
docker-compose.yml配置
version: "3" services: bash: image: ubuntu:latest stdin_open: true tty: true volumes: - ./:/app command: "/bin/bash"
容器启动与操作
启动命令:
docker-compose up --build
启动输出:
[+] Running 1/0 ⠿ Container ruby-docker-bash-1 Created 0.0s Attaching to ruby-docker-bash-1
进入容器后查看挂载目录:
docker exec -it ruby-docker-bash-1 /bin/bash root@9644de175d48:/# cd app/ root@9644de175d48:/app# ls -la total 4 drwxr-xr-x 2 root root 40 Feb 1 09:59 . drwxr-xr-x 1 root root 4096 Feb 1 09:39 .. root@9644de175d48:/app# cat Gemfile cat: Gemfile: No such file or directory
主机目录内容
ls -la .rw-r--r-- 2.7k paul 1 Feb 09:31 Dockerfile .rw-r--r-- 3.9k paul 1 Feb 09:32 Gemfile .rw-r--r-- 27k paul 1 Feb 09:32 Gemfile.lock .rw-r--r-- 149 paul 1 Feb 10:00 docker-compose.yml
排查步骤与解决方法
1. 检查Docker Desktop文件共享权限
- 打开Docker Desktop偏好设置,进入
Resources->File Sharing - 确认当前工作目录所在的磁盘(例如Macintosh HD)已添加到共享列表中
- 若未添加,点击"+"按钮添加对应磁盘,然后重启Docker Desktop生效
2. 验证系统隐私与安全权限
- 打开系统设置,进入
隐私与安全性->完全磁盘访问权限 - 确保
Docker Desktop和终端应用(如iTerm2、Terminal)已被勾选,允许其访问磁盘内容 - 修改权限后,重启Docker Desktop和终端
3. 确认目录路径正确性
- 在主机终端执行
pwd命令,确认当前路径是否为docker-compose.yml所在的目录 - 注意:Linux容器环境是大小写敏感的,MacOS默认大小写不敏感,需确保路径拼写无大小写错误
4. 测试基础挂载功能
- 跳过Docker Compose,直接用
docker run命令测试挂载是否正常:docker run -it -v $(pwd):/app ubuntu:latest ls /app - 如果该命令能正常显示主机目录文件,说明问题可能出在Docker Compose配置或环境;若仍为空,继续排查系统权限
5. 更新Docker Desktop至最新版本
- Ventura的权限模型变更可能需要Docker的适配支持,检查Docker Desktop是否为最新稳定版,升级后重试
内容的提问来源于stack exchange,提问作者Paul Alden
相关产品推荐
相关产品推荐

