如何启用 Docker VirtioFS

5 min read

注:VirtioFS 仅适用于使用以下 macOS 版本的用户

macOS 12.2 及以上版本(M1 系列处理器)
macOS 12.3 及以上版本(英特尔处理器)
在 Docker Desktop 中启用 VirtioFS:

将 Docker Desktop 升级至 4.6 版本,可在此下载;
导航到 “偏好” > “实验性功能”
选择 "启用 VirtioFS 加速的目录共享" 选项
点击 "应用和重启" 即可;

开发者在使用 Symfony 或 React 等技术时,常见的工作流程是编辑位于 macOS 主机上的源代码,同时在 Docker 容器中运行应用程序本身,源代码通过使用 Docker 数据卷在主机和容器之间共享。

因此对位于主机系统上的文件所做的修改必须快速、可靠地同步到容器文件系统中。当考虑到现代依赖项管理可以很容易地将数以万计的文件带入一个项目时,文件共享性能的优劣将影响整个系统性能的发挥,而目前默认所采用的 gRPC-FUSE 就会导致性能不佳。

最近 Docker Desktop for Mac 的变化,尤其是新增了对 VirtioFS 的支持能够缓解了这个问题,给文件系统性能带来了巨大的改善。具体来说,在 Docker Desktop 4.6 上启用 VirtioFS 之后,开发人员在测试中得出了以下结果:

完成 MariaDB 导入所需的时间缩短了 98% (从 33 分钟降低至 42 秒)
完成 284MB 的 MySQL 导入所需的时间缩短了 90%(从 3 分 16 秒降低至 18 秒);
在一个大型代码库中运行 composer install 所需的时间缩短了 87%(从 1 分 27 秒降低至 11 秒);
启动一个单体 Typescript 应用程序的时间缩短了 80%(从 1 分 30 秒降低至 18 秒);