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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 05:50:27