本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
osxfs 是一个 Linux 文件系统,专为解决 Docker for Mac 与其封装的 Linux 虚拟机(VM)之间的 -v 绑定挂载问题而设计。它提供 FUSE(用户空间文件系统)实现,支持容器中的 inotify 事件监听,并可副存储文件节点所有权元数据。这些特性通过支持使用 inotify 监听文件系统事件的 Linux 容器,以及允许 Docker for Mac 客户端以普通用户身份在 macOS 上运行,满足容器开发场景需求。
osxfs 系统包含两个主要组件:
从用户应用发起的文件系统操作,典型流程如下:
/dev/fuse 文件描述符发送 FUSE 消息AF_VSOCK 套接字(virtio vsock)重传AF_VSOCK 套接字将响应发送至 transfused/dev/fuse 文件描述符上述流程延迟约为 100 微秒。
仅适用于 Docker for Mac 环境,作为 Linux VM 与 macOS 主机间的绑定挂载中间层,不支持其他操作系统(如 Linux 或 Windows 主机)。
osxfs 作为 Docker for Mac 的内置组件,无需手动部署。用户通过 Docker 挂载命令间接使用其功能,主要通过配置挂载一致性模式优化性能。
Docker 引擎支持通过一致性标志(per-container-mount 级别)指定挂载一致性策略,osxfs 根据策略调整缓存行为以平衡性能与一致性。支持以下模式:
| 模式 | 说明 |
|---|---|
delegated | macOS 主机为文件系统状态权威源,容器内写入延迟同步至主机,性能最优 |
cached | 容器内读取使用缓存,写入立即同步至主机,平衡性能与一致性 |
strict | 完全同步,容器与主机文件系统状态严格一致,性能最低但一致性最高 |
使用示例:
通过 docker run 命令挂载目录时指定一致性模式:
docker run --rm -v $(pwd):/app:delegated alpine sh -c "echo 'test' > /app/file.txt"
osxfs 提供内置工具用于性能分析,帮助定位延迟瓶颈。
记录 osxfs 与 transfused 间消息的单调时间延迟和类型,需通过 osxfs 二进制子命令调用。
使用示例:
测量 100,000 次 1KiB 块写入操作的性能:
# 假设 osxfs_ctl.native 路径为 Docker for Mac 内置路径 /Applications/Docker.app/Contents/Resources/bin/osxfs_ctl.native perfstat --export /Users perfstat-dd.dat -- docker run --rm -v $(pwd):/host -w /host alpine dd if=/dev/zero of=zeros bs=1024 count=100000
解析 perfstat 生成的日志文件,输出性能摘要报告。
使用示例:
分析上述 perfstat-dd.dat 日志:
/Applications/Docker.app/Contents/Resources/bin/osxfs_ctl.native perfstat_analyze perfstat-dd.dat
典型输出:
Elapsed: 19.796321007s Messages: 100028 (0 trimmed, 2 with open transfused data) HyperKit CPU: 129.7% (25.67s) osxfs CPU: 52.7% (10.44s) Time in osxfs with 0 ops outstanding: 72.4% (14.327s) ... Message FUSE_WRITE received 100000 (100.0% txns 99.9% t) (50th/90th/98th/100th): 52.569us 65.289us 102us 6.972ms
通过向 osxfs 进程发送 SIGUSR2 信号,可触发 osxfs 与 transfused 间的基础 ping 测试,评估往返延迟。
osxfs 性能瓶颈主要源于跨系统消息传输延迟,关键优化方向包括:
通过减少跨系统消息数量和路径长度提升性能,osxfs 利用 Linux VFS 缓存机制,结合一致性模式动态调整缓存行为:
stat 元数据,降低元数据查询延迟缓存策略需根据一致性模式调整:delegated 模式启用最激进缓存,strict 模式禁用缓存以保证强一致性。
osxfs 作为 Docker for Mac 的核心组件,通过 FUSE 协议代理和跨系统通信机制,解决了 Linux 容器与 macOS 主机间的绑定挂载兼容性问题,支持 inotify 事件和元数据管理。用户可通过调整一致性模式平衡性能与一致性,并使用 perfstat 工具分析和优化文件系统性能。
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429