Docker 启用全新功能,文件共享时间大幅减少 98%


近日 Docker 更新了 macOS 端的桌面应用,在新版本中引入了一项名为 VirtioFS 的实验性功能,根据官方介绍,开启这项功能后可以使文件共享所花费的时间大幅减少 98%。 要了解这个功能为何带来了大幅的性能提升,还得先了解常见的开发者工作流程。开发者在使用 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 秒); 新版本的这个变化使完成文件系统操作的时间最高缩短了 98%,对于开发者来说,速度上的大幅提升意味着减少了等待文件系统操作完成的时间(或建立特定于项目的特殊方法来提高性能),而有更多的时间专注于项目的开发。 如何启用 VirtioFS 注:VirtioFS 仅适用于使用以下 macOS 版本的用户 macOS 12.2 及以上版本(M1 系列处理器) macOS 12.3 及以上版本(英特尔处理器) 在 Docker Desktop 中启用 VirtioFS: 将 Docker Desktop 升级至 4.6 版本,可在此; 导航到 “偏好” “实验性功能” 选择 "启用 VirtioFS 加速的目录共享" 选项 点击 "应用和重启" 即可; VirtioFS 目前还处于实验性阶段,因此在使用过程中难免会遇到一些问题,用户可以将发现的任何问题上报至 Docker Mac 文件系统性能线程中。目前一个已知的问题就是启用了 VirtioFS 的容器在运行时可能会因权限错误而失败。

相關推薦

2023-10-30

CVE 漏洞。 [升级] Apache Maven 版本支持 3.9.5 [升级] minio docker 镜像版本升级至 RELEASE.2023-10-25T06-33-25Z 【依赖更新】 [升级] guava 版本升级至 32.1.3-jre [升级] mybatis plus 版本升级至 3.5.4 [升级] mdi__font webjars 版本升级至 7.3.67

2024-04-03

,Bun 1.1在打包、测试、SQLite支持等方面也有诸多亮点。全新的bun build --target=node命令让你轻松将TypeScript代码打包成可在Node.js下运行的文件。而bun build --compile命令更是一个黑科技,它能将你的JS/TS代码连同SQLite数据库一起编译成

2024-04-26

均不在维护,所以该版本不再维护 [3] Postgresql Nacos Docker   Dante Cloud 自开源以来一直支持多数据的切换。对于使用 MySQL 的朋友来说,不存在部署多个数据库的问题。但是,对于使用 其它数据库(比如:Postgr

2022-12-21

pom.xml 中 <java.version> 指定为变更为 JDK 17。 [变更] Docker 默认 JDK 基础镜像变更为 JDK 17。 [变更] spring.factories 全部替换为新版格式并启用 @AutoConfiguration。原有 ...AutoConfiguration形式命名配置类,变更为...Configuration形式命名

2022-12-02

yground,添加了改进 Go 文档注释的支持,为 HTTP 客户端和 Docker 引入了新功能,并提供了新 UI。 此外,GoLand 也迎来了 5 岁生日,官方邀请各位开发者们一起庆祝。现在在 GoLand 2022.3 或 GoLand 2022.2.5 中输入 “Happy B-day, GoLand!”,看

2022-12-02

1.0 正式推出。 ClamAV 1.0.0 现已稳定,可通过 ClamAV.net 或 Docker Hub 下载。ClamAV 1.0.0 包括以下变化: 主要变化 支持解密用默认密码加密的基于 OLE2 的只读 XLS 文件。默认密码的使用现在将出现在元数据 JSON 中。 彻底检查了全

2024-02-22

[发布] 基于 Sentinel 1.8.7 扩展改造的 Dante Sentinel Dashboard Docker 镜像已发布并上传至 Docker Hub。 【其它更新】 [新增] 新增系统现有错误体系,发现未能识别的错误时,在日志中打印提醒功能。fix: #I8Q187 [新增] 在线文档和

2022-12-04

进: 在 YAML 文件(包括 Kubernetes 文件、OpenAPI 规范和 docker-compose.yml)中,新增的快速修复可以通过注释禁止检查。 针对 Python 控制台的 asyncio 支持 内置 Python 控制台现在支持在函数外使用 await 关键字快速运行协同程序。

2024-01-18

[发布] 基于 Sentinel 1.8.7 扩展改造的 Dante Sentinel Dashboard Docker 镜像已发布并上传至 Docker Hub 【其它更新】 [重构] 提取基础核心定义代码模块,清晰依赖和模块定位,规避定义与应用相关代码全部混合在 assistant-core 模块中

2023-06-06

也同样推动了 Jetstream 的改进。除了这些改进之外,是否启用全新的 Maglev 编译器,是决定 Jetstream 基准测试结果高低最重要的一个因素。 上图同样是在 M2 Macbook Air 上,使用开启了 Maglev 编译器的 Chrome 116.0.5803.2 所测出来的分

2022-06-04

在未来的版本中继续提供更多的价值。对于 2.0,此升级启用了以下增强功能: Lucene 9.1 提供的性能优化包括将多维点的索引速度提高了 10–15%。 Java Jigsaw模块支持  意味着在 9.1 版本中,Lucene 具有模块描述符和依赖

2024-03-16

amd64    macOS arm64    Linux arm64 Docker镜像: 点击这里 帮助手册 安装文档:https://www.zentao.net/book/zentaopms/455.html 升级文档:https://www.zentao.net/book/zentaopms/460.html   持续优化,定期更新,禅道一直

2022-10-07

在工具间共享 Windows App SDK、VC++ 和 PowerToys Interop 运行时文件,减少了安装程序(0.62.1 中为 125MB,0.63.0 为 83MB)和安装文件(0.62.1 中为 817MB,0.63.0 中为 587MB)大小。这是朝着取消安装时的 UAC 要求迈出的一步。 已知问题 Tex

2023-07-05

架构的全新查询优化器,并在 Apache Doris 2.0-beta 版本全面启用。全新查询优化器采取了更先进的 Cascades 框架、使用了更丰富的统计信息、实现了更智能化的自适应调优,在绝大多数场景无需任何调优和 SQL 改写即可实现极致的查