微软最新推出的 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 同时运行。

联手微软,Docker公司将推出Docker Desktop for WSL 2相关推荐

  1. Docker 入门教程(一) - Docker Tutorial

    Docker 教程 作者: Jakob Jenkov 原文链接 Docker是一种使用名为Dockerfile的打包规范将应用程序和服务器配置打包为 Docker 镜像的简单方法. Docker 镜像 ...

  2. Solomon Hykes离开Docker公司,自此仗剑走天涯

    Solomon Hykes的成功之路一直崎岖而坎坷.他的Docker创立旅程,始于10年前在巴黎建立的dotCloud,并以今天提出的辞职请求作结.期间,Hykes领导dotCloud由一家PaaS公 ...

  3. Docker 公司是如何做社区的?

    今天看了一个Docker公司是如何做社区的PPT,演讲者是Docker公司的市场部老大.Docker从发布之初就受到了开发者的关注,1.0版本发布的时候Docker就收到了超过460位贡献者的8741 ...

  4. Docker容器基础(二) - Docker公司的入场

    一天天的,PaaS深入人心,Cloud Foundry为首的传统PaaS,开始蓄力基础设施领域的 平台化和PaaS化,于是发现了PaaS中的问题 1 如何给应用打包 Cloud Foundry/Ope ...

  5. Docker基础认识与docker安装以及环境配置

    文章目录 一.什么是Docker 二.常用核心基本概念 1. 镜像(Image) 2. 仓库(Repository) 3. 容器 container(Container): 三.其他基础性概念 1. ...

  6. Docker之旅(1)-Docker基础

    一.Docker 简介 1.1 Docker 概念 Docker 于 2013 年开源,其基于 go 语言开发,是一个开源的 PaaS 服务(Platform as a Service,平台即服务的缩 ...

  7. 【云原生之企业级容器技术 Docker实战一】Docker 介绍

    目录 一.Docker 介绍 1.1 容器历史 1.2 Docker 是什么 1.3 Docker 和虚拟机,物理主机 1.4 Docker 的组成 1.5 Namespace 1.6 Control ...

  8. Docker精华问答:Docker与虚拟机的区别?| 技术头条

    Docker 是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应用的维护效率,降低了云计算应用开发的成本!使用 Docker,可以让应用的部署.测试和分发都变得前所未有的高效和轻松! 1 ...

  9. Docker学习一:Docker简介与安装

    前言 本次学习来自于datawhale组队学习: 教程地址为: https://github.com/datawhalechina/team-learning-program/tree/master/ ...

最新文章

  1. wordpress 常用函数-wpdb类
  2. Effective Java 阅读笔记——方法
  3. python介绍和用途-Python --- Python的简介
  4. Spark-Sql整合hive,在spark-sql命令和spark-shell命令下执行sql命令和整合调用hive
  5. linux i2c adapter 增加设备_LINUX设备驱动模型分析之四 设备模块相关(DEVICE)接口分析...
  6. WebSocket 是什么原理?为什么可以实现持久连接?什么情况使用WebSocket
  7. FAR,FRR,EER
  8. 子查询 不同情况 mysql
  9. GitHub、YouTube 们的开源替代品都有了!
  10. 结构张量 matlab 图像,图像处理中 结构张量(structure tensor)
  11. 测试用例设计——场景法
  12. 二维数组(动态规划)
  13. HTTP 状态码502 深度解析
  14. 手机号和座机号正则表达式
  15. mysql表id的数据类型是_MySQL表中的数据类型
  16. java调用金蝶云接口_调用金蝶web api
  17. 【Linux】Linux操作的一些基本指令
  18. utf8ascii编码
  19. springBoot整合spring security+JWT实现单点登录与权限管理前后端分离--筑基中期
  20. 鸡肋功能2————将汉字转化为拼音(带声调)

热门文章

  1. php程序layer,php 提交表单 关闭layer弹窗iframe的实例讲解
  2. mac 不能连接wi-fi_如何阻止Mac自动连接到Wi-Fi网络
  3. NFC服务器在Linux,linux 安装 libnfc ,打开串口PN532
  4. Tushare数据的绘图操作
  5. linux下A免密码登录B
  6. UITableView 禁止下拉
  7. Mac 登陆 去掉 其他用户
  8. 使用 PHP 7 给 Web 应用加速
  9. iOS-Runtime知识点整理
  10. 系统集成相关岗位理解