app开发者平台在数字化时代的重要性与发展趋势解析
704
2022-11-17
docker笔记(5)-Docker容器
Docker容器
用户可以从单个镜像启动一个或多个容器
容器 VS 虚拟机
虚拟机运行在完整的操作系统上,容器会共享宿主机的操作系统内核.
在虚拟机模型中,需要开启物理机并启动Hypervisor引导程序,一旦Hypervisor启动,就会占用机器上的所有物理资源.接下来Hypervisor会将这些资源划分为虚拟资源,并且看起来和真实物理资源完全一致,在虚拟机中可以安装OS和应用.然后Hypervisor会将这些资源打包进一个叫做虚拟机VM的软件结构中.虚拟机的结构图如下.
容器模型则略有不同.
在容器模型中,OS占用了全部的硬件资源,在OS层之上需要安装容器引擎,容器引擎可以获取系统资源,比如进程树,文件系统以及网络栈,并把资源分割为安全的相互隔离的资源结构,称之为容器.每个容器看起来就像一个真实的操作系统.容器的结构图如下.
从更高层面上讲,Hypervisor是硬件虚拟化(Hypervisor将硬件资源划分为虚拟资源),而容器是操作系统虚拟化(容器将系统资源划分为虚拟资源).
虚拟机的额外开销
操作系统本身会消耗一定的CPU,RAM和存储空间,并且每个操作系统都需要独立的许可证,并且都需要打补丁升级,每个操作系统都面临被攻击的风险,这种现象称作OS Tax 或者 VM Tax.而容器共享一个操作系统内核,只有一个操作系统需要占用资源,只有一个需要授权和升级,简而言之就是只有一个份OS的消耗容器不是完成的操作系统,启动速度远比虚拟机快,容器内部不需要内核,也就没有定位,解压以及初始化过程,更不用提在内核启动过程中对硬件的遍历和初始化了
容器可以在更少的资源上运行更多的应用,启动更快,并且支付更少的授权和管理费用,同时面对未知攻击的风险也更小.
容器的生命周期
docker container run/stop/start/rm
docker container rm -f 是一种暴力删除容器的方式, 更佳的方式是docker container stop再rm,这样给容器中运行的应用停止并清理残留数据的机会.
总结下容器的生命周期,可以根据需要多次停止,启动,暂停以及重启容器,这些操作执行得很快,但是容器及其数据时安全的.直到明确删除容器前,容器都不会丢弃其中的数据.就算容器被删除了,如果将数据存在卷中,数据也会被保存下来.
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~