Docker与虚拟机之间的关键差异原来是它

简介:

是什么让Docker容器如此受欢迎?在某些情况下甚至比虚拟机更有魅力?

答案就是密度。

为什么这么说?它怎会如此重要?

在计算的背景下,密度指的是单个物理服务器一次可以运行的对象数量。如果服务器可以通过充分利用其资源一次容纳大量应用程序,它则可以支持密集的环境部署。相反,如果服务器只运行少数应用程序,它的总容量未能充分利用,那么它是一个稀疏的环境。

Docker和密度

Docker与虚拟机之间的关键差异原来是它

支持密集软件部署的能力是Docker在许多情况下比部署应用程序的虚拟机更有利的一个关键原因。

关于这点,你必须首先意识到,从根本上讲虚拟机不善于密集,这里有2个主要原因:

虚拟机有更多的开销。他们必须运行一个完整的客户操作系统,即使他们只托管单个应用程序。因此,更多的物理服务器资源必须专用于支持与客户操作系统相关的环境开销,从而减少可用于专用于应用程序的资源。

配置虚拟机时,通常必须为其分配一定量的存储,内存和计算资源。这些资源将永久连接到虚拟机,直到您更改配置。即使虚拟机不使用资源,也不支持主机上的其他虚拟机。

相比之下,Docker容器是创建密集环境的理想选择,在这种环境中,主机服务器的资源被充分利用,但不会被过度使用。这是因为Docker容器不需要通过在容器内创建客户机操作系统来复制主机操作系统的功能。

此外,Docker不会强制您为容器分配给定数量的资源(虽然您可以为单个容器设置资源配额)。这意味着Docker容器能够更高效和动态地使用来自主机的资源。当放置在一个容器或服务上的需求减少时,它所消耗的资源将被释放以供其他服务使用。

它可以帮助Docker容器轻松跨服务器集群进行分布。有助于确保资源被有效地使用以及每个服务器密度的最大化,同时使单个服务器变得过载的风险最小化。

结论

到目前为止,密度已经不是Docker会话的重要组成部分(虽然Canonical喜欢使用该术语来推广其系统容器解决方案,LXD是专为托管完整的操作系统而不是个别应用程序而设计的)。但是这个概念有助于思考为什么Docker已经变得如此受欢迎 - 以及Docker和虚拟机之间的关键区别。

本文转自d1net(转载)

目录
相关文章
|
2月前
|
网络安全 虚拟化 Docker
SSH后判断当前服务器是云主机、物理机、虚拟机、docker环境
结合上述方法,您可以对当前环境进行较为准确的判断。重要的是理解每种环境的特征,并通过系统的响应进行综合分析。如果在Docker容器内,通常会有明显的环境标志和受限的资源视图;而在云主机或虚拟机上,虽然它们也可能是虚拟化的,但通常提供更接近物理机的体验,且可通过硬件标识来识别虚拟化平台。物理机则直接反映硬件真实信息,较少有虚拟化痕迹。通过这些线索,您应该能够定位到您所处的环境类型。
41 2
|
2月前
|
存储 Linux 开发者
虚拟机centos7.9一键部署docker
本文介绍了如何在 CentOS 7.9 虚拟机上安装 Docker 社区版 (Docker-ce-20.10.20)。通过使用阿里云镜像源,利用 `wget` 下载并配置 Docker-ce 的 YUM 仓库文件,然后通过 `yum` 命令完成安装。安装后,通过 `systemctl` 设置 Docker 开机自启并启动 Docker 服务。最后,使用 `docker version` 验证安装成功,并展示了客户端与服务器的版本信息。文中还提供了列出所有可用 Docker-ce 版本的命令。
212 0
虚拟机centos7.9一键部署docker
|
4月前
|
测试技术 持续交付 云计算
Docker 相对于虚拟机的优势
【8月更文挑战第27天】
125 5
|
4月前
|
安全 持续交付 虚拟化
在Docker中,Docker和虚拟机有什么不同?
在Docker中,Docker和虚拟机有什么不同?
|
4月前
|
应用服务中间件 Linux nginx
Linux虚拟机磁盘扩容、Docker容器磁盘满的问题、Docker安装nginx
这篇文章讨论了Linux虚拟机磁盘扩容的方法,包括外部配置、具体扩容步骤和扩容后的效果验证。同时,文章还涉及了Docker容器磁盘满的问题及其解决方法,如删除不必要的镜像和容器,以及调整Docker的安装路径。此外,还提到了意外情况的处理,例如误删除停止的容器后的应对措施。最后,文章还提供了使用Docker安装nginx的步骤和成功访问的截图。
Linux虚拟机磁盘扩容、Docker容器磁盘满的问题、Docker安装nginx
|
4月前
|
关系型数据库 MySQL 数据库
成功解决:Navicat 连接虚拟机Docker中的mysql数据库失败(仅限某些特殊情况)
这篇文章介绍了在Ubuntu环境中使用Docker部署Flask项目的方法,包括创建测试项目、设置数据库、构建Flask和Nginx镜像以及容器编排,其中使用了MySQL 5.7作为数据库,Flask 2.0.2作为Web框架,Gunicorn 20.1.0作为应用服务器,Nginx 1.21.4作为反向代理,并解决了Navicat连接Docker中的MySQL数据库失败的问题。
|
5月前
|
存储 Linux 虚拟化
虚拟机下如何使用Docker(完整版)
Docker 是一款开源的应用容器引擎,由Docker公司最初开发并在2013年发布。Docker的核心理念源自于操作系统级别的虚拟化技术,尤其是Linux上的容器技术(如LXC),它为开发人员和系统管理员提供了一种标准化、轻量级的方式来打包、分发和运行应用程序及其依赖环境。
414 2
|
7月前
|
Java 虚拟化 Docker
Docker简介及用途,为什么要使用Docker?Docker容器和虚拟机的区别
Docker简介及用途,为什么要使用Docker?Docker容器和虚拟机的区别
|
7月前
|
虚拟化 Docker 容器
【Docker】Docker容器和虚拟机的区别是什么?
【4月更文挑战第20天】【Docker】Docker容器和虚拟机的区别是什么?
|
KVM 虚拟化 云计算
Docker和虚拟机有什么区别?
Docker和虚拟机有什么区别?
643 1