近日,DockerDesktopforMac发布了4.6新版本,新增多项更新。其中最值得注意的是引入了一项名为virtiofs的实验性功能,它显着提高了macOS用户的文件共享性能,同时也改进了文件在macOS主机和Docker虚拟机之间同步的方式。据官方介绍,这些改进显着减少了文件操作时间高达98%。此功能提供巨大性能提升的原因是因为使用Symfony或React等技术的开发人员需要编辑驻留在macOS主机上的源代码,同时在Docker容器中运行应用程序本身。使用Docker卷在主机和容器之间共享源代码,对驻留在主机系统上的文件所做的更改必须快速可靠地同步到容器文件系统,以便开发人员优化生产力并获得良好的用户体验。考虑到现代依赖管理可以轻松地将10k–100k文件引入项目(这会线性增加性能损失),这可能会导致性能下降,因为主机和容器通过卷保持同步,而virtiofs的Using减轻了这个问题。开发者在使用DockerDesktop4.6早期预览版时观察:284MB的MySQL导入时间从3分16秒缩短到18秒;而大型程序代码库的composerinstall执行时间从1分27秒减少了87%,只剩下11秒;启动整体Typescript应用程序的时间减少了80%,从1:30减少到18秒。如何启用virtiofs注意:virtiofs仅适用于使用以下macOS版本的用户macOS12.2及更高版本(M1系列处理器)macOS12.3及更高版本(Intel处理器)DockerDesktop中启用virtiofs:将DockerDesktop升级到4.6版本下载链接:https://docs.docker.com/desktop/mac/release-notes/导航至“首选项”>“实验性功能”选择“启用VirtioFS加速目录共享”选项单击“应用并重新启动”;virtiofs现在可以在DockerDesktopforMac4.6版中访问,并且可供所有用户使用,包括Docker个人免费用户以及DockerPro、团队和企业付费订阅用户。目前,由于virtiofs还处于实验阶段,在使用过程中会遇到一些问题。官方提醒的是,一个已知的问题是运行virtiofs的容器可能会因为权限错误而失败。用户可以向DockerMac文件系统性能线程报告他们发现的任何问题。
