首页 > 其他 > 详细

Docker笔记(5)-Docker容器

时间:2020-05-07 21:21:59      阅读:86      评论:0      收藏:0      [点我收藏+]

Docker容器

用户可以从单个镜像启动一个或多个容器

容器 VS 虚拟机

虚拟机运行在完整的操作系统上,容器会共享宿主机的操作系统内核.

在虚拟机模型中,需要开启物理机并启动Hypervisor引导程序,一旦Hypervisor启动,就会占用机器上的所有物理资源.接下来Hypervisor会将这些资源划分为虚拟资源,并且看起来和真实物理资源完全一致,在虚拟机中可以安装OS和应用.然后Hypervisor会将这些资源打包进一个叫做虚拟机VM的软件结构中.虚拟机的结构图如下.

技术分享图片

容器模型则略有不同.

在容器模型中,OS占用了全部的硬件资源,在OS层之上需要安装容器引擎,容器引擎可以获取系统资源,比如进程树,文件系统以及网络栈,并把资源分割为安全的相互隔离的资源结构,称之为容器.每个容器看起来就像一个真实的操作系统.容器的结构图如下.

技术分享图片

从更高层面上讲,Hypervisor是硬件虚拟化(Hypervisor将硬件资源划分为虚拟资源),而容器是操作系统虚拟化(容器将系统资源划分为虚拟资源).

虚拟机的额外开销

  1. 操作系统本身会消耗一定的CPU,RAM和存储空间,并且每个操作系统都需要独立的许可证,并且都需要打补丁升级,每个操作系统都面临被攻击的风险,这种现象称作OS Tax 或者 VM Tax.而容器共享一个操作系统内核,只有一个操作系统需要占用资源,只有一个需要授权和升级,简而言之就是只有一个份OS的消耗
  2. 容器不是完成的操作系统,启动速度远比虚拟机快,容器内部不需要内核,也就没有定位,解压以及初始化过程,更不用提在内核启动过程中对硬件的遍历和初始化了

容器可以在更少的资源上运行更多的应用,启动更快,并且支付更少的授权和管理费用,同时面对未知攻击的风险也更小.

容器的生命周期

docker container run/stop/start/rm

docker container rm -f 是一种暴力删除容器的方式, 更佳的方式是docker container stop再rm,这样给容器中运行的应用停止并清理残留数据的机会.

总结下容器的生命周期,可以根据需要多次停止,启动,暂停以及重启容器,这些操作执行得很快,但是容器及其数据时安全的.直到明确删除容器前,容器都不会丢弃其中的数据.就算容器被删除了,如果将数据存在卷中,数据也会被保存下来.

Docker笔记(5)-Docker容器

原文:https://www.cnblogs.com/SheezyGuo/p/12845263.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!