阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

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:4534152
用户头像

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

关注

评论

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

学会RabbitMQ代理的连接,是一种怎样的体验?,mongodb教程

Java 程序员 后端

太狠了!阿里技术官熬夜半年肝出来的Spring Boot巅峰之作,爱了

Java 程序员 后端

头条「2020最新」Spring最易学习教程,百度java面试经验

Java 程序员 后端

如何在分布式系统中正确的使用缓存?别给你的项目引入定时炸弹!

Java 程序员 后端

如何快速成长为技术大牛?阿里资深技术专家的总结亮了!

Java 程序员 后端

如何理解互斥锁、条件锁、读写锁以及自旋锁(1),mysql入门到精通电子书

Java 程序员 后端

如果当时这16道题能答好,现在应该已经被录取了(记一次面试的亲身经历 2020-9-9

Java 程序员 后端

字节跳动一年一更的400多页算法刷题宝典已更新,力扣官网沸腾

Java 程序员 后端

学弟学妹们请不要错过自己的“黄金奋斗三年”,java实战项目代码

Java 程序员 后端

太难了,面试官不讲武德!来骗来偷袭,分层架构图案例

Java 程序员 后端

如何使用Spring Cloud Consul的其他配置和发现功能,不会来学

Java 程序员 后端

如何在Spring Boot应用中优雅的使用Date和LocalDateTime

Java 程序员 后端

如何让自己像打王者荣耀一样发了疯、拼了命、石乐志的学习

Java 程序员 后端

如何设计一个百万级用户的抽奖系统?,三面蚂蚁核心金融部

Java 程序员 后端

如果当时这15道题能答好,现在应该已经被录取了(记一次面试的亲身经历 2020-7-20

Java 程序员 后端

学IT的人太多了,现在入行还有出路吗?,linux环境高级编程

Java 程序员 后端

华为云专家向宇:工欲善其事必先利其器,才能做数据的“管家”

华为云数据库小助手

GaussDB GaussDB(for Influx) 华为云数据库 华为云数据库创新Lab

学生管理系统(SSM简易版)总结,斗鱼Java开发二面被刷

Java 程序员 后端

如何让阿三 Windows 10、11 的恢复分区(Recovery Partition

Java 程序员 后端

如何阅读一本书-读书笔记,java二到三年经验面试题

Java 程序员 后端

模块二作业

doublechun

「架构实战营」

太狠了,Spring全家桶笔记,一站式通关全攻略,已入职某厂涨薪18K

Java 程序员 后端

如何保证高可用?搞定三种集群模式,Redis还不是手到擒来

Java 程序员 后端

如何正确使用Spring Cloud Zookeeper,不懂来学,java教程下载网盘

Java 程序员 后端

学习高并发的前置知识——Java中的线程基础,springcloud实战演练

Java 程序员 后端

太难了,救救孩子吧,到现在还搞不懂TCP的三次握手四次挥手

Java 程序员 后端

如何保证Redis与数据库的双写一致性?,十分钟带你看懂Netty如何实现C-S

Java 程序员 后端

如何在今年难找工作的大环境下成功入职阿里?Java架构师面试高频300题:集合

Java 程序员 后端

字节首席架构师整合面试痛点,成就399页Java框架核心宝典

Java 程序员 后端

字节跳动Java开放岗面经:14天快速面试,已拿offer,Java全套百度云

Java 程序员 后端

字节跳动,三面我败了!但是我把经验记录了下来,java编程思想第六版百度云

Java 程序员 后端

Docker Desktop for WSL 2将于7月发布预览版本_服务革新_Simon Ferquel_InfoQ精选文章