100+ 国内外一线大厂架构演进案例分享 了解详情
写点什么

Docker Desktop for WSL 2 将于 7 月发布预览版本

  • 2019-06-19
  • 本文字数:2041 字

    阅读完需:约 7 分钟

Docker Desktop for WSL 2将于7月发布预览版本

Docker 的目标之一就是在桌面环境中提供使用容器的最佳体验,无论是在 Windows、Mac 还是 Linux 上工作的用户都可以获得尽可能接近 Native 的体验。


为了实现这一目标,我们花了很多时间与微软和苹果提供的软件栈一起工作。2016 年,我们引入了 Windows Linux 子系统 (WSL),此后,我们一直在密切关注,以便在产品中更好得利用它。


最初,WSL 给人的印象是在努力模仿 Linux 内核上的 Windows,但是由于 Windows 和 Linux 之间存在的根本差异,很多东西无法做到与 Native Linux 相同实现,而这意味着它无法直接运行在 Docker 引擎和 Kubernetes WSL 内部。而 Docker Desktop 开发了一个使用 Hyper-V vm 和 LinuxKit 的替代解决方案,以实现用户期望的无缝集成。


刚刚,微软宣布了一个 WSL 2 的主要架构变化:他们没有使用仿真,而是提供了一个运行在轻量级 VM 中的真正的 Linux 内核。这种方法在架构上非常接近于我们今天使用的 LinuxKit 和 Hyper-V,但是比 Docker 更轻量级,并且能够与 Windows 更紧密地集成。Docker 守护进程在其上运行得很好,性能表现优异,在我们开发人员的机器上,从冷启动到在 WSL 2 中运行只需大约 2 秒。对此,我们感到很兴奋,也很高兴和大家宣布:我们正在开发 Docker Desktop for WSL 2 的新版本,并计划在 7 月份进行公开预览。它将使得 Docker 容器开发的体验更丰富,由于 WSL 2 适用于 Windows 10 家庭版,所以 Docker Desktop 也适用于 Windows 10 家庭版。

与微软合作

为了使 Docker Desktop 成为 Windows 上使用 Docker 的最佳方式,我们携手微软一起合作。微软提供了 WSL 2 的早期版本,以便评估这项技术是否适合我们的产品,同时进行一些反馈。我们使用了不同的方法构建原型,所以接下来想和大家分享一下我们未来的工作。

未来的 Docker Desktop

我们使用 WSL 2 集成包替换了当前使用的 Hyper-V VM。这个集成包提供与当前 Docker Desktop VM 相同的功能:Kubernetes 1-click setup、自动更新、透明 HTTP 代理配置、从 Windows 访问守护进程、透明绑定 Windows 文件挂载等等。



这个集成包包含了运行 Docker 和 Kubernetes 所需的服务器端组件,以及用于与 WSL 中组件交互的 CLI 工具。

Docker Desktop 新特性:Linux Workspaces

使用 Docker Desktop 时,运行守护进程的 VM 是完全不透明的:您可以在 Windows 中与 Docker 和 Kubernetes API 交互,但是除了 Docker 容器或 Kubernetes pod 之外,不能在 VM 中运行任何东西。


使用 WSL 2 集成,仍然可以体验到与 Windows 的无缝集成,不过运行在 WSL 内部的 Linux 程序也可以做到这一点。这对于开发针对 Linux 环境的项目的开发者或者针对 Linux 定制的构建过程具有巨大的影响,他们不再需要同时维护 Linux 和 Windows 两套不同的构建脚本了。


例如,Docker 开发人员可以在 Windows 上使用 Linux Docker 守护程序,可以使用与 Linux 开发人员相同的工具和脚本集:



使用 Docker Desktop technical preview、WSL 2 和 VS Code remote 开发 Docker 守护进程


此外,WSL 的绑定挂载将支持 inotify 事件,并且具有与本地 Linux 机器几乎相同的 I/O 性能,通过 I/O-heavy toolchains 解决了 Docker Desktop 的痛点问题之一。Node.js、PHP 和其它 Web 开发工具也可以从这一特性中获益。


结合 Visual Studio Code “Remote to WSL”,Docker Desktop Linux workspaces 可以在 Windows 上的 IDE 运行完整的 Linux 工具链,以便在本地机器上构建容器。

性能

针对 WSL 2,微软在性能和资源分配方面投入了大量的精力:VM 设置使用动态内存分配,并且可以在所有主机 CPU 上安排工作,在主机提供的内存范围内消耗所需内存,并与运行在主机上的 Win 32 进程协作。


Docker Desktop 利用这一点极大地提高了资源消耗,可以根据需要任意使用 CPU 或内存,并且一些 CPU/ 内存密集型的任务,运行速度要比之前快。


此外,冷启动之后,启动 WSL 2 发行版和 Docker 守护进程的时间也快得惊人,在我们的开发笔记本电脑上仅需 2 秒钟,而在当前版本的 Docker Desktop 上仅需 10 秒钟。如果我们将守护进程的启动推迟到第一次 API 调用,并在守护进程没有运行任何容器时自动停止它,就可以达到优化电池寿命的目的。

零配置绑定安装支持

针对 Docker Desktop(尤其是在企业环境中),用户通常都会考虑这样一个问题,即 Windows 文件绑定挂载的可靠性。如果当前实现依赖于 Samba Windows 服务,那么它可能会被停用、被企业 GPOs 阻塞、被第三方防火墙阻塞等。


而使用 WSL 2 的 Docker Desktop 可以解决这个问题,通过 WSL 特性来实现 Windows 文件的绑定挂载,提供开箱即用的“IT Just Works”体验。

Docker Desktop for WSL 2 将于 7 月开放预览

通过和微软的合作,我们编写了核心功能来部署集成包、运行守护进程并将其公开给 Windows 进程,支持绑定挂载和端口转发。


Docker Desktop for WSL 2 预览版将于 7 月开放下载,它将与 Docker Desktop 当前版本并行运行,用户仍可处理现有项目。


原文链接:https://engineering.docker.com/2019/06/docker-hearts-wsl-2/


2019-06-19 09:4534053
用户头像

发布了 497 篇内容, 共 292.9 次阅读, 收获喜欢 1870 次。

关注

评论

发布
暂无评论
发现更多内容

HCIE云计算--灾备,万字总结

Java 后端

HTML笔记 —— 表单,java数组的底层原理

Java 程序员 后端

Java 8 Lambda 表达式和 Stream 操作,网易资深Java架构师

Java 程序员 后端

git(9)Git 内部原理,nginx模块工作原理

Java 程序员 后端

Github已星标180K又一神作,阿里巴巴内部并发编程笔记

Java 程序员 后端

Github神作!2021Java秋招高级面试指南,吃透至少阿里P6

Java 程序员 后端

git(8)Git 与其他系统,高性能mysql第四版pdf百度云

Java 程序员 后端

Elasticsearch查询速度为什么这么快?看啥?问你呢

Java 程序员 后端

Flink on Yarn三部曲之一:准备工作,java开发校招面试题

Java 程序员 后端

Hadoop分布式高可用HA集群搭建笔记(含Hive之构建)

Java 程序员 后端

Docker系列(3)--容器连接和Dockerfile,kafka的原理

Java 程序员 后端

ECMAScript6(ES6)基础语法,linux基础及应用教程第二版

Java 程序员 后端

Git,GitHub与GitLab的区别,java框架开发面试题

Java 程序员 后端

HTTP 2,实战篇

Java 程序员 后端

Java agent还不了解的程序员该反省一下了,腾讯大牛教你自己写Java框架

Java 程序员 后端

爽!字节大佬DDD(领域驱动设计)巅峰之作,拆解业务代码真好用

编程 程序员 字节

HashMap底层实现原理及面试问题,linux服务器搭建教程视频

Java 程序员 后端

Elasticsearch聚合学习之二:区间聚合,java中高级面试题大全

Java 程序员 后端

Elasticsearch聚合学习之五:排序结果不准的问题分析

Java 程序员 后端

flex 布局详解,我是如何收割多家大厂offer的

Java 程序员 后端

HashMap(jdk1,linux学习路线图

Java 程序员 后端

IDEA开发Spark应用实战(Scala),java高级开发简历

Java 程序员 后端

Java 专项练习【1 - 10】,java常见算法面试题

Java 程序员 后端

elasticsearch实战三部曲之二:文档操作,java基础填空题

Java 程序员 后端

github搜索技巧小结,深入理解JVM

Java 程序员 后端

Google 面试六轮游,结果还是没过!Google面试真题分享

Java 程序员 后端

Dubbo面试题,mybatis架构图

Java 程序员 后端

Flink1,java从入门到精通第四版pdf下载

Java 程序员 后端

jackson学习之六:常用类注解,java编程思想第五版电子书

Java 程序员 后端

Java agent还不了解的程序员该反省一下了(1)

Java 程序员 后端

第 2 周作业

波波

「架构实战营」

  • 扫码加入 InfoQ 开发者交流群
Docker Desktop for WSL 2将于7月发布预览版本_服务革新_Simon Ferquel_InfoQ精选文章