联手微软 Docker公司将推出Docker Desktop for WSL 2 微软最新推出的 WSL 2 在架构方面发生了重大的变化:它提供了一个在轻量级 VM 中执行的真正 Linux 核心。 使用真正的 Linux 核心意味着可以在 Windows 上执行 ELF64 Linux 二进位制档案。对 Docker 来说绝对是利好讯息,因为这意味着 Linux 版本的 Docker 可以直接在 WSL 2 中执行。 不过 Docker 的目标并不止于此,对于这个变化以及这项技术,Docker 公司已将其应用到自家的产品上,并在近日宣布目前正在开发针对 WSL 2 的新版 Docker Desktop,计划于7月释出公开预览版。它将使 Docker 的开发体验体验更友好、以及解锁更多新功能。 Docker 表示微软在 WSL 2 中采取的架构方案和他们对 LinuxKit 和 Hyper-V 的使用方法非常类似,更重要的是,使用真正 Linux 核心的 WSL 2 与 Windows 整合更紧密。 据 Docker 公司的介绍,微软很早就为他们提供了 WSL 2 的早期版本,以便他们评估这项技术,并了解如何和 Docker Desktop for Windows 结合,使它成为在 Windows 上使用 Docker 的最佳方案。 经过测试后,Docker 守护程式在 WSL 2 中执行良好,效能表现也不俗,冷启动时间仅需要大约 2 秒。
Docker 也表示将使用 WSL 2 的整合包来替代 Hyper-V VM,该软件包将提供与当前 Docker Desktop VM 相同的功能:一键设定 Kubernetes、自动更新、透明的 HTTP 代理配置、从 Windows 访问守护程式以及透明系结 Windows 档案等等。
此整合包将包含执行 Docker 和 Kubernetes 所需的服务器端元件,以及用于和 WSL 中的这些元件互动的 CLI 工具。最终,Docker Desktop 将会引入一项新功能:Linux 工作区(Linux workspaces)。
现在我们使用 Docker Desktop 时,执行守护程式的 VM 完全不透明:虽然我们可以从 Windows 与 Docker 和 Kubernetes API 进行互动,但除了 Docker 容器或 Kubernetes Pod 之外,无法在 VM 中执行任何内容。
但通过整合 WSL 2,可以体验与 Windows 的无缝整合,这对于开发针对 Linux 环境的专案的开发者或者针对 Linux 定制的构建过程具有巨大的影响 —— 意味着开发者无需再维护用于 Linux 和 Windows 两套不同的构建指令码了。
例如,Docker 的开发者现在可以在 Windows 上执行 Linux Docker 守护程式,使用与 Linux 开发者相同的工具和指令码集:
至于效能方面的问题,为了让 WSL 2 有更好的使用体验,微软在效能和资源分配方面付出了巨大的努力:将 VM 设定为使用动态分配内存的方式,并且可以在所有可用的主机 CPU 上进行任务排程,另外,在主机提供的范围内,消耗所需的最低内存。
Docker Desktop 将利用 WSL 2 的这些特性来大幅改进其资源消耗量,它将根据需要使用尽可能少的 CPU 和内存,并且构建容器等 CPU/内存密集型任务将比现在快得多。
得益于和微软的合作,Docker Desktop for WSL 2 将于 7 月释出技术预览版,支援与当前版本的 Docker Desktop 同时执行。
开源中国征稿啦!
开源中国 www.oschina.net 是目前备受关注、具有强大影响力的开源技术社群,拥有超过 400 万的开源技术精英。我们传播开源的理念,推广开源专案,为 IT 开发者提供一个发现、使用、并交流开源技术的平台。
现在我们开始对外征稿啦!如果你有优秀的技术文章想要分享,热点的行业资讯需要报道等等,欢迎联络开源中国进行投稿。投稿详情及联络方式请参见:我要投稿