Docker真的支持原生态Mac和Windows了吗?
创始人
2025-01-28 07:30:36
0

 今天看新闻,突然有爆料说docker已经支持Mac和Windows了,这不禁让我感慨发展之迅速。作为跟MFC,,Visual Studio, WinDBG,.Net打交道多年的我,甚是兴奋。不过,当我仔细阅读原文后,发现跟我们想的还相差甚远。

“Faster and more reliable: no more VirtualBox! The Docker engine is running in an Alpine Linux distribution on top of an xhyve Virtual Machine on Mac OS X or on a Hyper-V VM on Windows, and that VM is managed by the Docker application. You don’t need docker-machine to run Docker for Mac and Windows.”

仅凭这一句,我就顿感失望。Docker和VM的***区别就是,一个是操作系级虚拟化,一个是硬件级虚拟化。因此, Docker本身就是可以运行在VM之上的。你不能说在windows上装个虚拟机,然后再运行一个Docker,就说docker支持windows吧。为了让docker能在VM上运行,docker专门开发了Docker Toolbox和docker-machine,其核心都是通过虚拟机来运行docker,只不过是帮用户简化了中间的部署和配置流程。针对本次的Beta发布,更多的是优化的工作。笔者也提交了试用申请,然后进入了长长的waiting-list,不过我猜测,这次的版本改进主要体现在以下几个方面:

  1. 通过使用轻量级的linux发行版本,使VM更小,部署和安装更快。Alpine linux是一个非常轻量级的发型版,而且docker也有计划让alpine作为默认的基础镜像。
  2. 原生工具集支持。以前我们在非linux下运行时,都需要借助于类似MINGW的工具,模拟一下Shell。而这次Beta的退出,在这方面肯定是加强了,支持了原生态的命令。
  3. 更好的网络支持。可能会将Docker的网络系统集成到Mac和Windows的原生网络系统中,方便用户配置。
  4. 更好的对系统沙盒的适配。OS X和Windows本身都是支持沙盒的,可能在这方面会有所加强。

这一系列的改进,不可谓不大。看得出docker得到了Microsoft和Mac的很大帮助,同时也归功于docker在Unikernal 领域的收购。那么为什么原生态的windows和mac那么难支持呢?这必须从docker的基本原理说起:

  •  CGroup技术,这是用来控制CPU、内存、网络等资源限制的,这需要内核的支持,而目前只有linux的支持比较好。
  • lNamespace技术,这是用来做用户资源隔离的,注意这里是隔离,是让一个进程成为一个沙盒,拥有完全独立的PID,网络栈,主机名等,而这一技术目前也是只有linux支持比较好。

不过话说回来,Microsoft也不是吃素的,其实Windows Server 2016已经支持了原生态的docker,不过它基本上是完全重写了,连基础镜像都是windows server,这一点就很难融入docker的生态圈,毕竟Registry里面的基本都是运行在linux下的镜像。

作者介绍:晏东,精灵云(www.ghostcloud.cn)联合创始人,20年编程经验,全栈工程师,曾任索贝数码及赛门铁克架构师架构师,一直从事SAN、NAS及对象存储等分布式系统研发工作。2013年开始研究LXC和Docker相关技术,目前主要从事容器云平台镜像及仓库方面研发工作。

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
Intel将Moblin社区控... 本周二,非营利机构Linux基金会宣布,他们将担负起Moblin社区的管理工作,而这之前,Mobli...