Docker Desktop for Mac最新的4.6版本,加入了许多更新,而其中最值得注意的是,其采用新的文件共享技术Virtiofs,而该实例能够明显提高macOS用户的文件共享性能,另外,新版本还改进了macOS主机和Docker虚拟机间文件同步的方式,而官方提到,这些改进使得文件操作时间大幅减少达98%。
在使用Symfony或React等技术时,常见开发人员的工作流程,主要编辑位于macOS主机上的程序代码,同时在Docker容器执行应用程序,通过使用Docker存储磁盘(Volume),在主机和容器之间共享程序代码,官方提到,这样的流程让开发人员保存编辑后的源码,就可以立即在浏览器看到结果。也就是说,主机系统上的文件更改,必需要能可靠地传播到容器文件系统,才能提供开发人员更好生产力和用户体验。
主机和容器间共享应用程序源码的性能非常重要,因为像是当开发人员使用Symfony PHP框架,在编辑源码后,要在浏览器重新加载页面,容器中的网页服务器必须重新读取存储在主机上的大量PHP文件,官方表示,现在的相依项目管理系统,动辄会在项目带入数万到数十万的文件,而这将使得主机和容器同步性能不佳。
近期开发团队在Docker Desktop for Mac的更新,包括使用Virtiofs文件共享技术,能有效缓解这个问题,并对文件系统带来巨大的性能改进。根据早期预览版的实际试验资料,284 MB的MySQL导入时间,从3分16秒缩短到了18秒,而大型程序代码库执行composer install的时间,从1分钟27秒缩短87%,仅剩11秒,还有启动单体Typescript应用程序的时间缩短80%,从1分30秒缩短至18秒。
要激活文件系统加速功能,用户需要在Apple Silicon使用macOS 12.2以上版本,或是英特尔macOS 12.3以上版本,并且使用Docker Desktop 4.6,在设置中的实验性功能,激活新的虚拟化框架以及VirtioFS加速目录共享,重新启动应用程序即可。