本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

transfused Docker 镜像下载 - 轩辕镜像

transfused 镜像详细信息和使用指南

transfused 镜像标签列表和版本信息

transfused 镜像拉取命令和加速下载

transfused 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

transfused
docker/transfused

transfused 镜像详细信息

transfused 镜像标签列表

transfused 镜像使用说明

transfused 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

用于挂载osxfs文件系统的Linux辅助工具
2 收藏0 次下载activedocker镜像

transfused 镜像详细说明

transfused 使用指南

transfused 配置说明

transfused 官方文档

osxfs

镜像概述和主要用途

osxfs 是一个 Linux 文件系统,专为解决 Docker for Mac 与其封装的 Linux 虚拟机(VM)之间的 -v 绑定挂载问题而设计。它提供 FUSE(用户空间文件系统)实现,支持容器中的 inotify 事件监听,并可副存储文件节点所有权元数据。这些特性通过支持使用 inotify 监听文件系统事件的 Linux 容器,以及允许 Docker for Mac 客户端以普通用户身份在 macOS 上运行,满足容器开发场景需求。

核心功能和特性

系统组件

osxfs 系统包含两个主要组件:

  1. transfused:Linux FUSE 协议代理,负责与 virtio vsocks 通信
  2. com.docker.osxfs:macOS 程序,运行 Linux FUSE 服务器

文件系统消息流程

从用户应用发起的文件系统操作,典型流程如下:

  1. Linux VFS 通过系统调用接收文件系统操作
  2. FUSE 驱动从 VFS 多路分解器被调用
  3. FUSE 通过预协商的 /dev/fuse 文件描述符发送 FUSE 消息
  4. transfused 在代理线程中读取 FUSE 消息,并通过 AF_VSOCK 套接字(virtio vsock)重传
  5. virtio vsock 将消息放入环形缓冲区等待传输
  6. virtio vsock 触发硬件故障以通知 hypervisor
  7. HyperKit 接收硬件故障并从队列中取出消息
  8. HyperKit 将消息转发至 UNIX 域套接字
  9. osxfs 从 UNIX 域套接字读取消息并解析
  10. osxfs 执行 macOS 文件系统操作以完成请求
  11. osxfs 构造包含请求错误或结果的数据包,并通过 UNIX 域套接字传输
  12. HyperKit 从 UNIX 域套接字读取响应
  13. HyperKit 将响应放入环形缓冲区
  14. HyperKit 在 Linux 中触发中断
  15. virtio vsock 接收中断并从队列中取出响应
  16. virtio vsock 通过 AF_VSOCK 套接字将响应发送至 transfused
  17. transfused 在独立线程中读取响应,缓冲至完整消息后写入 /dev/fuse 文件描述符
  18. FUSE 接收响应并为阻塞的用户空间线程排队
  19. FUSE 中的用户空间线程解除阻塞,从队列中取出并解码响应
  20. 响应(必要时修改 VFS 状态)通过解除阻塞的系统调用返回至调用进程

上述流程延迟约为 100 微秒。

关键特性

  • inotify 事件支持:允许容器内应用通过 inotify 监听文件系统事件
  • 元数据管理:副存储文件节点所有权元数据,确保容器内文件权限与 macOS 主机协调
  • 跨系统通信:基于 virtio vsock 和 HyperKit 实现 Linux VM 与 macOS 主机间的高效消息传输
  • 动态挂载控制:内置服务器监听容器挂载/卸载请求,动态启用/禁用 FSEvents 监听器以触发 inotify 事件

使用场景和适用范围

适用场景

  • Docker for Mac 用户需在 Linux 容器中使用 inotify 监听文件变更(如前端开发热重载、日志监控)
  • 需确保容器内文件所有权元数据正确映射至 macOS 主机的场景(如多用户协作、权限敏感应用)
  • 需在 macOS 上以普通用户身份运行 Docker for Mac 客户端,同时保持容器内文件系统操作兼容性

适用范围

仅适用于 Docker for Mac 环境,作为 Linux VM 与 macOS 主机间的绑定挂载中间层,不支持其他操作系统(如 Linux 或 Windows 主机)。

详细使用方法和配置说明

osxfs 作为 Docker for Mac 的内置组件,无需手动部署。用户通过 Docker 挂载命令间接使用其功能,主要通过配置挂载一致性模式优化性能。

一致性模式配置

Docker 引擎支持通过一致性标志(per-container-mount 级别)指定挂载一致性策略,osxfs 根据策略调整缓存行为以平衡性能与一致性。支持以下模式:

模式说明
delegatedmacOS 主机为文件系统状态权威源,容器内写入延迟同步至主机,性能最优
cached容器内读取使用缓存,写入立即同步至主机,平衡性能与一致性
strict完全同步,容器与主机文件系统状态严格一致,性能最低但一致性最高

使用示例
通过 docker run 命令挂载目录时指定一致性模式:

bash
docker run --rm -v $(pwd):/app:delegated alpine sh -c "echo 'test' > /app/file.txt"

性能测量工具

osxfs 提供内置工具用于性能分析,帮助定位延迟瓶颈。

perfstat

记录 osxfs 与 transfused 间消息的单调时间延迟和类型,需通过 osxfs 二进制子命令调用。

使用示例
测量 100,000 次 1KiB 块写入操作的性能:

bash
# 假设 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=***

perfstat_analyze

解析 perfstat 生成的日志文件,输出性能摘要报告。

使用示例
分析上述 perfstat-dd.dat 日志:

bash
/Applications/Docker.app/Contents/Resources/bin/osxfs_ctl.native perfstat_analyze perfstat-dd.dat

典型输出

Elapsed: 19.796321007s
Messages: *** (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 *** (100.0% txns 99.9% t) (50th/90th/98th/100th):
52.569us 65.289us 102us 6.972ms

ping 功能

通过向 osxfs 进程发送 SIGUSR2 信号,可触发 osxfs 与 transfused 间的基础 ping 测试,评估往返延迟。

性能优化

数据路径延迟优化

osxfs 性能瓶颈主要源于跨系统消息传输延迟,关键优化方向包括:

  1. Linux 内核调度:非 tickless 内核或单 vCPU 配置可能降低调度开销,减少延迟
  2. virtio vsock 改进:启用延迟信用更新(deferred credit updates)减少消息负载(参见 docker/hyperkit#92)
  3. HyperKit 通信优化:替换 UNIX 域套接字为共享内存或 Mach 端口以降低 IPC 延迟
  4. osxfs 线程模型:减少基于 LWT(轻量级线程)的协作式多线程导致的系统调用开销

缓存策略

通过减少跨系统消息数量和路径长度提升性能,osxfs 利用 Linux VFS 缓存机制,结合一致性模式动态调整缓存行为:

  • 目录项缓存(dcache):缓存目录结构,减少重复目录查询
  • inode 属性缓存:缓存 stat 元数据,降低元数据查询延迟
  • 写回缓存:未来计划支持 per-node 写回缓存(当前 Linux FUSE 仅支持全局 mount 级配置)

缓存策略需根据一致性模式调整:delegated 模式启用最激进缓存,strict 模式禁用缓存以保证强一致性。

总结

osxfs 作为 Docker for Mac 的核心组件,通过 FUSE 协议代理和跨系统通信机制,解决了 Linux 容器与 macOS 主机间的绑定挂载兼容性问题,支持 inotify 事件和元数据管理。用户可通过调整一致性模式平衡性能与一致性,并使用 perfstat 工具分析和优化文件系统性能。

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

oldzhang的头像

oldzhang

运维工程师

Linux服务器

5

"Docker加速体验非常流畅,大镜像也能快速完成下载。"