“容器”的理解(对比虚拟机)

  首先介绍下“虚拟化”这一概念:是一种资源管理技术,它抽象了计算机的实体资源(包括内存、存储、服务器、网络等等),并将这些资源进行转换,最终呈现出来加以运用,用户可以实现利用更优的组合状态来使用(简单理解:就是给用户提供了自定义去使用这些计算机的实体资源)

最常见的两种虚拟化技术:虚拟机Docker(容器)

一、虚拟机

  虚拟机的出现解决了一个服务器只能运行一个应用的问题,实现了操作系统/硬件的抽象。在物理服务器上搭建多个虚拟机,划分不同的计算资源,供上层应用使用。这就使得多个应用可以稳定安全地运行在同一个服务器,减少了服务器资源的闲置。

但这样也暴露了它的不足:在虚拟机技术中服务器与应用的映射关系从一对一变成了一对多,就会使得不同的虚拟机之间竞争宽带、宿主机端口资源(常说的端口被占)。负载较高时,虚拟机的性能就变得很差,资源利用下降,调度分发也变缓慢。

二、Docker

  针对于上述虚拟机的缺点,Docker容器技术实现了对不同的应用进行隔离。

2.1 Docker的三大核心:

(1)镜像(Image):相当于停止运行的容器,内部是一个精简的操作系统(OS),同时还包括运行应用所必须的文件和依赖包。

(2)容器(Countainer):可以理解为运行时的容器,是依据镜像创建出来的。

(3)仓库(Image Repository):用于存储镜像文件。

一个镜像仓库服务包含多个镜像仓库;而一个镜像仓库中可以包含多个镜像。

 2.2 Docker优势:

(1)轻量级的虚拟化,很轻松地创建、启动、停止和删除容器。

(2)超级集装箱:Docker可以装载系统、服务和应用,同时保证运行环境的统一性,能够很轻松的做到统一部署环境。

(3)多个容器共享一个操作系统,不需要Hypervisor(虚拟机监视器,用来建立与执行虚拟器的软件、固件和硬件),实现更轻松的迁移和秒级甚至毫秒级的启动时间。

(4)每个容器的命名空间唯一,所以实现了容器之间互不影响。这也使得运行在其中的应用程序实现独立和隔离的目的。

三、总结

  容器(Container)是一种更轻量级,更灵活的虚拟化处理方式,它将一个应用程序所需的一切打包在一起。容器包括所有代码,各种依赖甚至操作系统,这让应用程序几乎在任何地方都可以运行。因此它的诞生,解决了一个重要问题:如何确保应用程序从一个环境移动到另一个环境的正确运行。它只是虚拟了操作系统,而不像虚拟机一样去虚拟底层计算机。
Docker的出现让部署服务和系统运维的效率有了极大的提高,可以做到开发环境无缝迁移到生产环境。在生产环境中经常做的就是部署成千上万的服务,然后在这个基础上做负载均衡之类的事情,有了docker就能通过部署对应服务的容器镜像完成。有了docker还不够,因为我们需要管理成千上万的容器,于是就有了容器调度工具比如k8s之类的,我们可以做到监控容器运行状态,然后自动重启一些坏掉的容器,相当于做了热备份。把容器和容器调度跑到云端,这样结合起来的服务就是容器云。
 

posted on   理想三旬_z  阅读(279)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
历史上的今天:
2021-08-23 Oracle基础
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示