Windows Docker内部原理猜想和Azure讲座录像分享

简介:

[前言] 盆盆期待和大家分享年初在北京Microsoft MVP OpenDay上分享的讲座录像,介绍有关微软云计算、Docker和微信自动化联动的技术。在这篇文章里,还将介绍盆盆自己对Windows自己的Docker技术的猜想和展望。

 

首先要给大家分享一个盆盆在MVP Open Day上的讲课录像。

 

1月底盆盆去北京参加MVP的两会,当时天可真蓝。

wKioL1USARiQWJIVADTGh0GGQBU598.jpg

 

和张诚、苏繁等兄弟一起晚餐。

wKiom1USAMWjYn5TAC3aJCZBmi4539.jpg

 

晚宴上,还有多才多艺的MVP兄弟表演节目哩

wKioL1USAjHyRycKACldDZSARZs631.jpg

 

第二天是周六,在王府井的一家酒店开讲座,上座率不低哈。

wKioL1USAmGgfxG_AALYEG726zo076.jpg

 

讲座视频

 

前天盆盆拿到了讲课的录像,大该1小时,录像效果较一般,大家凑合着看吧(注意有声音,请带耳机收看,以免影响他人哈)。


您可以访问以下的视频链接:

http://v.youku.com/v_show/id_XOTE0NTQyODY0.html

这个讲座主要讲什么呢,是和Azure云计算和自动化相关,其中涉及的一些知识点,您可以参考微信公众号华来四里的两篇文章(关注:sysinternal):

  • 在华来四公众号里回复docker1,阅读有趣的Windows Azure Docker演示

  • 在华来四公众号里回复azure1,阅读云计算和自动化


Docker原理


说到Docker,今天从team内部获悉,微软会推出超轻量级的Windows Nano Server,作为今后Windows Docker的底层OS,这就类似于开源社区正在推的CoreOS、轻量级Ubuntu一样。


联想到Linux Docker容器技术使用的六大Linux内核隔离技术:UTS/IPC/PID/Network/Mount/User。这样进程等于在外面包了一层独立的账户、主机名、进程号、网络、进程间通信和文件系统等命名空间的壳,简直等于一台轻量级的小型虚拟机!
wKioL1USAz-D6E1KAAJkBsopMFs659.jpg


这里推荐大家阅读DaoCloud的大牛孙老师的雄文《Docker背后的内核知识—Namespace资源隔离》(您需要复制以下地址,并粘贴到浏览器里查看):

http://www.infoq.com/cn/articles/docker-kernel-knowledge-namespace-resource-isolation?from=timeline&isappinstalled=0

 

其实Windows很早就有进程隔离技术,例如大家都很熟悉的终端服务(最早由Citrix研发)。终端服务实现所谓的会话隔离机制。其实质就是将 \DosDevices、\Windows和\BaseNamedObjects等几个对象的命名空间做隔离,这和Docker的IPC隔离有几分类似的地方。


看盆盆利用WinObj在Windows 10里抓的截图。终端服务通过构造新的窗口站命名空间(附图中的Windows部分),来隔离不同用户所看到的桌面;通过隔离的\BaseNamedObjects命名空间,则可以隔离(也叫做实例化)出自己的共享对象(例如内存段、Mutex和事件)。

wKiom1USAs6Q6a7HAAFUB4AxEoY710.jpg

 

有关终端服务的这部分原理,可以参考《Windows Internals》第173页。不过书里面并没有提到附图中看到的AppContainerNamedObjects。这是什么东东?


原来这是Windows 8以后才有的应用程序容器技术(Windows Internals主要以Windows 7为主),主要是给Metro UI应用所使用。有关这个应用容器技术,可以参考以下的文章:

http://recxltd.blogspot.com/2012/03/windows-8-app-container-security-notes.html


 

盆盆感兴趣的是以下的一段论述。

wKioL1USBHGBVOCqAAO5f3LNWvY801.jpg


其中有以下的一段话,大意是在权限、IC、文件访问和网络访问访问进行隔离,是不是和Docker的六大隔离有点类似??

Distilling this down they've introduced a high-level capability model that translates to a more restricted version of low integrity processes. Going further than before in restricting IPC between processes, file access and event loopback network access.


能否大胆猜测一下,微软会不会将其原本基于MetroUI的App Container技术,加工扩展为Windows版本的Docker?


想当年Citrix开发出终端服务,后来微软在1998年时正式授权到Windows NT的终端服务版(那一年盆盆刚工作)。Citrix自己再对其进行深加工,成就了XenDesktop和XenApp,到现在已经风光了17年。回想起来,其盈利模式是对每个终端连接进行收费,增值的部分至少有两点:终端连接的协议,以及管理平台。


那么Docker呢? 在Windows上会依赖何种模式盈利?Partner的赢利点在哪里?和原来的虚拟化技术如何整合?留给我们的问题太多了。




本文转自 ahpeng 51CTO博客,原文链接:http://blog.51cto.com/markwin/1624036,如需转载请自行联系原作者
相关文章
|
Java Linux C语言
《docker基础篇:2.Docker安装》包括前提说明、Docker的基本组成、Docker平台架构图解(架构版)、安装步骤、阿里云镜像加速、永远的HelloWorld、底层原理
《docker基础篇:2.Docker安装》包括前提说明、Docker的基本组成、Docker平台架构图解(架构版)、安装步骤、阿里云镜像加速、永远的HelloWorld、底层原理
1334 90
|
存储 缓存 Linux
docker的底层原理六: 联合文件系统(UnionFS)
本文介绍了Docker使用的联合文件系统(UnionFS),它通过分层存储和写时复制(CoW)机制,实现了容器的轻量级、高性能存储,支持了镜像继承、数据持久化和隔离性。
1144 0
|
Ubuntu NoSQL 开发工具
《docker基础篇:4.Docker镜像》包括是什么、分层的镜像、UnionFS(联合文件系统)、docker镜像的加载原理、为什么docker镜像要采用这种分层结构呢、docker镜像commit
《docker基础篇:4.Docker镜像》包括是什么、分层的镜像、UnionFS(联合文件系统)、docker镜像的加载原理、为什么docker镜像要采用这种分层结构呢、docker镜像commit
736 70
|
消息中间件 Linux 数据中心
Docker核心技术:Docker原理之Namespace
通过以上内容,您可以深入了解Docker中的Namespace机制及其在资源隔离中的应用,从而更好地理解和应用Docker技术。
766 25
|
Linux 虚拟化 Docker
Linux服务器部署docker windows
在当今软件开发中,Docker成为流行的虚拟化技术,支持在Linux服务器上运行Windows容器。流程包括:1) 安装Docker;2) 配置支持Windows容器;3) 获取Windows镜像;4) 运行Windows容器;5) 验证容器状态。通过这些步骤,你可以在Linux环境中顺利部署和管理Windows应用,提高开发和运维效率。
2829 1
|
安全 Windows
【Azure Cloud Service】在Windows系统中抓取网络包 ( 不需要另外安全抓包工具)
通常,在生产环境中,为了保证系统环境的安全和纯粹,是不建议安装其它软件或排查工具(如果可以安装,也是需要走审批流程)。 本文将介绍一种,不用安装Wireshark / tcpdump 等工具,使用Windows系统自带的 netsh trace 命令来获取网络包的步骤
612 32
|
安全 前端开发 Windows
Windows Electron 应用更新的原理是什么?揭秘 NsisUpdater
本文介绍了 Electron 应用在 Windows 中的更新原理,重点分析了 `NsisUpdater` 类的实现。该类利用 NSIS 脚本,通过初始化、检查更新、下载更新、验证签名和安装更新等步骤,确保应用的更新过程安全可靠。核心功能包括差异下载、签名验证和管理员权限处理,确保更新高效且安全。
812 4
Windows Electron 应用更新的原理是什么?揭秘 NsisUpdater
|
C# Windows
【Azure App Service】在App Service for Windows上验证能占用的内存最大值
根据以上测验,当使用App Service内存没有达到预期的值,且应用异常日志出现OutOfMemory时,就需要检查Platform的设置是否位64bit。
451 11
|
运维 持续交付 虚拟化
深入解析Docker容器化技术的核心原理
深入解析Docker容器化技术的核心原理
507 1