当前位置:首页 > 内存 > 正文

docker吃内存还是cpu

  • 内存
  • 2024-08-15 20:08:32
  • 9724

一、Docker是什么?它比虚拟机强在哪里?Docker是一个开源应用程序容器引擎,允许开发人员将其应用程序或程序移植到映像中,然后将其部署在任何Windows或Linux计算机上。当然,Docker也可以实现虚拟化。一个完整的Docker由:DockerClient客户端、DockerDaemon守护进程、DockerImage和DockerContainer组成。容器完全采用沙箱机制,相互之间不会有任何接口。
Docker比虚拟机强大的地方在于:
第一:启动时间:Docker容器的启动是秒级的,而虚拟机的启动是分钟级的,从启动速度上来说,Docker可以理想地碾压虚拟机一台机器。
第二:空间占用和性能:从空间占用和性能上来说,Docker容器链镜像比虚拟机小很多,性能也比虚拟机更强。
第三:使用要求:虚拟机依赖于硬件虚拟化,其CPU也必须支持虚拟化。Docker共享主机内核,可以在主流Linux上运行,而无需考虑CPU是否支持其后续技术。
二、如何看待docker容器与虚拟机之间的比较下面看一下Docker容器和虚拟机的对比
提问者很可能不知道Docker的重要性,而不是否认这些技术优势。我来分析一下其中的含义:
1.快速上线大多数情况下只是影响用户体验,但对于负责大规模部署的运维来说仍然非常重要。将某样东西放到网上需要一天还是一个小时,差别很大。
2.高资源利用率意味着虚拟化比容器消耗更多的资源。更准确地说,虚拟化层之后,只有90%的资源留给用户,而容器可以留下99%。直观地说,云意味着它可以省钱。
3.性能开销的重要性在于,由于虚拟化层的存在,即使虚拟机独占了所有物理资源,在其中运行的程序的性能仍然会慢于物理机。就这一点而言,CPU内存很可能更好,而其他外设则更差。容器只是一个进程,其性能与物理机几乎相同。普通用户不会有什么感觉,但要求稍高的用户可能会出现问题。


三、Docker基本概念

由于不同的机器有不同的操作系统,以及不同的库和组件,因此将应用部署到多台机器上需要大量的环境配置操作。

Docker主要解决环境配置问题。它是一种隔离进程的虚拟化技术。隔离进程独立于主机操作系统和其他隔离进程。使用Docker,可以将现有应用程序部署到其他机器上,而无需更改应用程序代码,也无需开发人员学习特定环境的技术。

虚拟机也是一种虚拟化技术。与Docker最大的区别在于它模拟硬件并在硬件上安装操作系统。

1启动速度

启动Docker相当于在主机操作系统上启动一个进程。

2占用资源

虚拟机是一个完整的操作系统,需要大量的磁盘、内存和CPU资源。

Docker只是一个进程,它只需要打包应用程序和相关组件。运行时占用的资源很少。

除了启动快、资源占用低之外,Docker还有以下优点:

1更容易迁移

提供一致的运行环境。打包好的应用程序可以迁移到不同的机器上,不用担心环境变化导致的不可用。

2更易于维护

使用分层技术和镜像使得程序更容易重用重复的部分。重复利用程度越高,维护工作就越容易。

3更容易扩展

可以使用基础镜像进行扩展来获取新的镜像,并且官方和开源社区提供了大量的镜像镜像,我们可以轻松获取所需的图像。

持续集成

持续集成是指频繁地将代码集成到主干中,以便更快地发现错误。

Docker是轻量级且隔离的。将代码集成到一个Docker中不会影响其他Docker。

提供可扩展的云服务

Docker可以根据应用程序负载轻松扩展或缩小。

构建微服务架构

Docker的轻量级特性使其非常适合部署、维护和组合微服务。

图像是一个静态结构,可以认为是面向对象中的类,容器是图像的一个实例。

镜像包含容器运行所需的代码和其他组件。它是分层结构,每一层都是只读的(read-only)。当您构建图像时,它是逐层构建的,前一层作为下一层的基础。图像的这种分层存储结构非常适合图像复用和制。

构建容器时,会在镜像中添加一个可写层(writablelayer),用于保存容器执行过程中的更改。