如何看待 Windows 原生支持 Docker

如何看待 Windows 原生支持 Docker,第1张

不是,Docker和VM的最大区别就是,一个是 *** 作系级虚拟化,一个是硬件级虚拟化。因此, Docker本身就是可以运行在VM之上的。不能说在windows上装个虚拟机,然后再运行一个Docker,就说docker支持windows吧。为了让docker能在VM上运行,docker专门开发了Docker Toolbox和docker-machine,其核心都是通过虚拟机来运行docker,只不过是帮用户简化了中间的部署和配置流程。针对本次的Beta发布,更多的是优化的工作。笔者也提交了试用申请,然后进入了长长的waiting-list,不过我猜测,这次的版本改进主要体现在以下几个方面:通过使用轻量级的linux发行版本,使VM更小,部署和安装更快。Alpine linux是一个非常轻量级的发型版,而且docker也有计划让alpine作为默认的基础镜像。原生工具集支持。以前我们在非linux下运行时,都需要借助于类似MINGW的工具,模拟一下Shell。而这次Beta的退出,在这方面肯定是加强了,支持了原生态的命令。更好的网络支持。可能会将Docker的网络系统集成到Mac和Windows的原生网络系统中,方便用户配置。更好的对系统沙盒的适配。OS X和Windows本身都是支持沙盒的,可能在这方面会有所加强。那么为什么原生态的windows和mac那么难支持呢这必须从docker的基本原理说起: CGroup技术,这是用来控制CPU、内存、网络等资源限制的,这需要内核的支持,而目前只有linux的支持比较好。lNamespace技术,这是用来做用户资源隔离的,注意这里是隔离,是让一个进程成为一个沙盒,拥有完全独立的PID,网络栈,主机名等,而这一技术目前也是只有linux支持比较好。

不可以!

Docker并不是全能的,设计之初也不是KVM之类虚拟化手段的替代品,简单总结几点:

1Docker是基于Linux 64bit的,无法在32bit的linux/Windows/unix环境下使用

2LXC是基于cgroup等linux kernel功能的,因此container的guest系统只能是linux base的

3隔离性相比KVM之类的虚拟化方案还是有些欠缺,所有container公用一部分的运行库

4网络管理相对简单,主要是基于namespace隔离

5cgroup的cpu和cpuset提供的cpu功能相比KVM的等虚拟化方案相比难以度量(所以dotcloud主要是按内存收费)

6docker对disk的管理比较有限

7container随着用户进程的停止而销毁,container中的log等用户数据不便收集

针对1-2,有windows base应用的需求的基本可以pass了; 3-5主要是看用户的需求,到底是需要一个container还是一个VM, 同时也决定了docker作为 IaaS 不太可行。

Docker创建出的Docker容器是和宿主机共享 *** 作系统的,所有Docker容器内部不可能运行Windows,OS X等非Linux *** 作系统。

但是,可以曲线救国,你可以再Docker容器内部运行一个virtualbox应用程序,然后通过virtualbox来运行你的windows等 *** 作系统,这样是可行的。今年6月底在DockerCon上Docker官方的美女大神Jessie就掩饰了一把。

>

以上就是关于如何看待 Windows 原生支持 Docker全部的内容,包括:如何看待 Windows 原生支持 Docker、可以在docker容器里跑windows么 / 网络技术编程、如何在linux上通过docker运行windows软件比如qq等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9553657.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存