0

0

水火交融-Windows上的Linux容器

星夢妙者

星夢妙者

发布时间:2025-09-06 09:14:02

|

176人浏览过

|

来源于php中文网

原创

在上周结束的微软技术暨生态大会上,盆盆分享了关于azure stack和容器的相关内容。其中,最引人注目的无疑是微软最新推出的一项技术——可以在windows中直接运行的linux容器!接下来,盆盆将通过这篇文章详细探讨这一技术。

水火交融-Windows上的Linux容器原本由于容器共享操作系统内核,Windows系统上无法运行Linux容器,反之亦然。现在,主流的docker编排工具大多支持Windows和Linux混合部署。例如,Kubernetes,如下图所示,Kubernetes集群中包含Windows节点。

水火交融-Windows上的Linux容器如果在Windows环境中运行Windows容器,可以看到多个运行在同一会话中的进程,这些进程共享同一个容器。下图显示的进程都在会话25中运行。

水火交融-Windows上的Linux容器Windows容器采用联合挂载文件系统,类似于Linux容器的AUFS等,使用分层的镜像层(Image Layer),最顶层的Layer可读可写,称为sandbox layer,存储在一个名为sandbox.vhdx的文件中。多层的Base Image和sandbox.vhdx在容器内部呈现为一个统一的、联合的文件系统。

而在Windows中运行Linux容器,则利用了Hyper-V容器的功能,每个容器都有自己的独立内核(使用docker的LinuxKit)。Hyper-V容器的安全性更高,因为它是在Hypervisor级别隔离的。

要在Windows 10中启用这一功能,最简单的方法是(确保已更新到Build 17205或更高版本)下载并安装最新的docker for Windows(请在网上搜索并选择下载edge分支)。

https://www.php.cn/link/86c26c7eb678214b9749fe1c5364cff2

然后确保选择“启用Windows上的Linux容器”。按照屏幕提示完成必要的步骤即可。

水火交融-Windows上的Linux容器当运行以下命令时,即可在Windows 10中创建Linux容器:

前面提到,这里的Linux容器实际上是Hyper-V容器,它启动了一个最小化的Linux虚拟机,其内核和引导文件位于C:\Program Files\Linux Containers目录下,包含bootx64.efi和initrd两个文件。

然后从本地镜像缓存中尝试获取ubuntu镜像(如果没有,则从docker hub中pull下来),并自动创建Linux容器,类似于Windows容器,其顶层的可读可写镜像层也称为sandbox.vhdx。

在Bash命令行提示符下输入cat /etc/issue,可以看到Linux容器的操作系统版本号为Ubuntu 16.04.3 LTS。

使用Process Explorer查看时,这个Hyper-V容器在宿主机上的进程为vmwp.exe,这是Hyper-V虚拟机的进程。容器内的进程都在这个最小化的Hyper-V虚拟机中运行,宿主机上看不到这些Ubuntu容器内的进程。

a0.dev
a0.dev

专为移动端应用开发设计的AI编程平台

下载

查看vmwp进程的打开句柄,可以看到类似以下复杂路径,如下图所示:

\device\STORVSP\GUID\{guid}\C:\programdata\Docker\lcow\lcow\aaa5f623879acf5818bffbeca7d88b62d4f262e957d2c4de99591c3b04144df1\sandbox.vhdx"

水火交融-Windows上的Linux容器其中,sandbox.vhdx(图中底部的红色方框)是Ubuntu容器的顶层可读可写镜像层,所有修改的内容都会保存在这个层中(通过commit可以固化下来),以实现代码的快速迭代。从图中可以看出,该sandbox.vhdx是通过Hyper-V虚拟机的VMBus上的SMB共享来访问的!

绿色方框部分是Ubuntu镜像的多个Base Image层,这些Base Image由不同的layer.vhd文件组成。这些Base Image和顶层的sandbox.vhdx通过联合挂载文件系统,在容器内部表现为一个单一的完整文件系统。

进入sandbox.vhdx的父目录,也就是以下路径:

C:\programdata\Docker\lcow\lcow\aaa5f623879acf5818bffbeca7d88b62d4f262e957d2c4de99591c3b04144df1\

其中的aaa5f623879acf5818bffbeca7d88b62d4f262e957d2c4de99591c3b04144df1就是该Ubuntu容器的容器ID。

该父目录下有一个layerchain.json文件,其内容如下:

该layerchain.json文件显示的是sandbox.vhdx文件所依赖的容器Base Image的路径,总共有5个文件,与前面截图中的绿色方框的5个文件相对应。

这就是Windows的强大之处,未来可以想象,底层的容器集群可以全部采用Windows Server 2016系统,既能运行Windows容器,也能运行Linux容器,并且支持docker的商业版,从操作系统到docker,都有商业化的保障!

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

415

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

533

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

310

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

75

2025.09.10

edge是什么浏览器
edge是什么浏览器

Edge是一款由Microsoft开发的网页浏览器,是Windows 10操作系统中默认的浏览器,其目标是提供更快、更安全、更现代化的浏览器体验。本专题为大家提供edge浏览器相关的文章、下载、课程内容,供大家免费下载体验。

1362

2023.08.21

IE浏览器自动跳转EDGE如何恢复
IE浏览器自动跳转EDGE如何恢复

ie浏览器自动跳转edge的解决办法:1、更改默认浏览器设置;2、阻止edge浏览器的自动跳转;3、更改超链接的默认打开方式;4、禁用“快速网页查看器”;5、卸载edge浏览器;6、检查第三方插件或应用程序等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

377

2024.03.05

如何解决Edge打开但没有标题的问题
如何解决Edge打开但没有标题的问题

若 Microsoft Edge 浏览器打开后无标题(窗口空白或标题栏缺失),可尝试以下方法解决: 重启 Edge:关闭所有窗口,重新启动浏览器。 重置窗口布局:右击任务栏 Edge 图标 → 选择「最大化」或「还原」。 禁用扩展:进入 edge://extensions 临时关闭插件测试。 重置浏览器设置:前往 edge://settings/reset 恢复默认配置。 更新或重装 Edge:检查最新版本,或通过控制面板修复

899

2025.04.24

windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

621

2023.07.26

Java编译相关教程合集
Java编译相关教程合集

本专题整合了Java编译相关教程,阅读专题下面的文章了解更多详细内容。

9

2026.01.21

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.5万人学习

Excel 教程
Excel 教程

共162课时 | 12.7万人学习

PHP基础入门课程
PHP基础入门课程

共33课时 | 2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号