容器运行在哪里?裸机服务器OR虚拟机?

知道为什么应该使用容器。但是您知道部署容器得用哪种基础设施吗? 作为托管Docker和其他容器环境的平台,裸机服务器是否比虚拟机更好?

答案当然取决于很多因素,本文将通过列举裸机服务器和虚拟机上运行容器的优缺点来讨论。我将专注于Docker,但这里分享的经验通常适用于任何类型的容器平台。

裸机VS虚拟机

权衡裸机服务器和虚拟化主机环境各自的优缺点不是一个新课题,CTO们在21世纪初就开始思考了,当时虚拟化刚开始在数据中心推广,Docker则还没出现。

简而言之,裸机服务器的主要优点包括:

更高的性能,因为没有系统资源浪费在硬件模拟上;充分利用所有机器资源,高需求期间无闲置;更简单的管理,因为主机、网络和磁盘等硬件基础架构更少。
虚拟机则具有以下优点:

通过在服务器之间传输虚拟机映像,轻松实现在主机间移动应用程序;不同虚拟机中运行的应用程序实现隔离,不仅有助于安全,也能降低管理复杂度。通过在同一类型虚拟机上部署所有应用程序,即使底层服务器是异构的,也能实现软件环境的跨平台一致性。
但是虚拟机也有一些缺点,包括:

服务器资源可能未完全使用。例如,如果您在服务器主机上分配存储空间以创建虚拟机磁盘映像,即使磁盘连接的虚拟机不使用全部空间,该存储空间也不可用于其他用途。虚拟机无法直接访问物理硬件。如果您希望虚拟机能够将计算操作转移到主机的GPU上,您很难或无法实现,因为虚拟机是从底层主机环境中抽象出来的。物理服务器直接访问硬件,虚拟服务器访问软件模拟的硬件。
现代虚拟化平台提供了一些技巧,可以帮助管理员解决上述限制。例如,您可以创建动态磁盘映像,该映像随着虚拟机的使用情况的增加而扩展,以避免虚拟机实际使用之前锁定主机上的存储空间。在某些情况下,您还可以利用直通功能为虚拟机提供直接访问主机物理硬件的功能。

然而,这些功能不是总能生效,例如他们不支持所有的主机或操作系统,他们还会产生额外的管理负担。如果您要运行的应用程序需要裸机访问,最好在裸机服务器上运行这些应用程序。

或者,您可以在裸机服务器上的容器中运行应用程序,以便充分利用这两个方面。

本文转自d1net(转载)

时间: 2024-10-14 03:46:52

容器运行在哪里?裸机服务器OR虚拟机?的相关文章

通过Docker容器运行持续集成/持续部署

本文讲的是通过Docker容器运行持续集成/持续部署,[编者的话] 对于Docker主流的应用场景:持续集成和持续部署(CI/CD)大家也许并不陌生.这篇文章从独特的视角阐述了如何利用各种云平台构建属于自己的CI/CD容器,笔者还自己扩展了Gitlab CI引擎,对CI感兴趣的同学对这个文章应该很感兴趣. 我曾经使用Docker了一段时间,在过去的一年里伴随着众多的Docker容器涌入,帮助用户们更容易的部署Docker容器到生产环境中.一些工具是第三方公司提供,当然也包括Docker公司自己的

《Docker容器:利用Kubernetes、Flannel、Cockpit和Atomic构建和部署》——第2章 搭建容器运行时环境 2.1标准Linux系统的Docker配置

第2章 搭建容器运行时环境 自构建之初,Docker就运行在Linux之上.但与虚拟机不同,虚拟机包含了整个操作系统,而容器本身只是依靠单独的操作系统为其提供运行环境.这就是说,我们有诸多可选的方式来创建Docker的工作环境.具体方式包括以下这些. 标准Linux:多个主要的Linux发行版已将Docker打包在其中.如需最新的Docker特性,只要安装相应Linux发行版的最新版本即可.切记,Docker与操作系统有着密切的联系,因此,Linux的早期版本可能并不包含Docker运行所需的全

轻松使用Docker容器运行Metasploit框架轻松使用Docker容器运行Metasploit框架

本文讲的是轻松使用Docker容器运行Metasploit框架轻松使用Docker容器运行Metasploit框架,[编者的话]Lenny Seltzer是信息安全技术方面的资深专家与企业家.他涉及的领域包括紧急事件响应,云服务和产品管理.Lenny在NCR集团专注于客户安全操作.他还在SANS学院教授数字取证技术与反间谍软件.Lenny积极参与各种会议,撰写相关文章和书籍. Metasploit是一款强大的渗透测试开源框架.不论你是专业人事或仅仅是爱好者,你都可以轻松的在Docker容器中运行

无需容器运行就能对其进行漏洞扫描的技术

本文讲的是 无需容器运行就能对其进行漏洞扫描的技术,容器可追溯到1979年的chroot命令,但Docker的出现让该技术的流行度和可用性有了指数级增长.任何技术一旦流传开来,必然也就成了攻击的目标. 容器旨在提供非完整虚拟机之外的隔离环境,但因为往往不像IT环境中其他资产一样受到监视,容器也就成为了攻击者眼中的肥肉. 公司企业有必要对容器进行漏洞评估,就像对环境中其他任何资产所做的那样.有那么几个漏洞扫描器可以扫描运行中的容器并报告漏洞,旦那只是整个评估的一部分. 容器并非全时段运行,只有完成

运行多个MYSQL服务器

mysql|服务器     大多数人们都在指定的机器上运行单个MySQL服务器,但在有些情况下,运行多个服务器是有好处的:    您可以在成品服务器运行的状态下测试新版本的服务器.在这种情况下,将运行不同的服务器.    操作系统通常将总进程限制施加于打开文件的描述符数量上.如果系统提高该限制值有困难,则运行多个服务器是解决该限制的办法(例如,提高限制可能需要重新编译该内核,并且,如果该机器不是您的管辖范围,可能还不能这样做).在这种情况中,您可能会运行相同服务器的多个实例.    互联网服务经

Docker 1.5新特性:支持IPV6、只读容器、容器运行监控,还有彩蛋

本文讲的是Docker 1.5新特性:支持IPV6.只读容器.容器运行监控,还有彩蛋,[编者的话]Docker 1.5是今年Docker第一个发布版本,在这个版本中Docker加入很多期望已久的新功能,新特性,让我们来看看吧!比如支持IPV6.只读容器.容器运行监控.构建时指定Dockerfiles....仔细看文章,还有彩蛋. Docker项目开发组决定在新的一年开始之初放出一些很酷的东西,大家都猜到了,那就是Docker 1.5,也是2015年Docker的第一个release版本.在这个版

tomcat服务器 虚拟机-tomcat服务器以及虚拟机问题

问题描述 tomcat服务器以及虚拟机问题 最近学习tomcat服务器配置,得知一个tomcat服务器可以配置多个虚拟主机,求大神们指点如何查询每个虚拟机的内存使用情况.还有,为tomcat服务器配置多个虚拟机,将不同的web应用放在不同的虚拟机下,这样做有什么优缺点,求大神们指点

mac os x-无法访问部署在mac服务器到虚拟机Ubuntu端口映射做成的服务器上的网站

问题描述 无法访问部署在mac服务器到虚拟机Ubuntu端口映射做成的服务器上的网站 各位朋友们好,有一个问题恳请部署网站的大侠们能指点我一下:我之前有一台阿里云服务器是Ubuntu系统的,买了公网ip(113.19.3.34)和域名(www.appoperation.com),我把自己的网站部署上去时,是在Ubuntu系统的/etc/hosts文件中加上以下一行:113.19.3.34 www.appoperation.com 但是由于老师的要求,希望现在把这个网站部署到一台mac os x系

java项目在本机部署运行成功,但放到服务器的tomcat/webapps文件夹下后出错

问题描述 java项目在本机部署运行成功,但放到服务器的tomcat/webapps文件夹下后出错 提示错误: 2016-3-15 14:05:52 org.apache.catalina.core.StandardContext start 严重: Error listenerStart 2016-3-15 14:05:52 org.apache.catalina.core.StandardContext start 严重: Context [/AMS] startup failed due