用户可以从单个镜像启动一个或多个容器
虚拟机运行在完整的操作系统上,容器会共享宿主机的操作系统内核.
在虚拟机模型中,需要开启物理机并启动Hypervisor引导程序,一旦Hypervisor启动,就会占用机器上的所有物理资源.接下来Hypervisor会将这些资源划分为虚拟资源,并且看起来和真实物理资源完全一致,在虚拟机中可以安装OS和应用.然后Hypervisor会将这些资源打包进一个叫做虚拟机VM的软件结构中.虚拟机的结构图如下.
容器模型则略有不同.
在容器模型中,OS占用了全部的硬件资源,在OS层之上需要安装容器引擎,容器引擎可以获取系统资源,比如进程树,文件系统以及网络栈,并把资源分割为安全的相互隔离的资源结构,称之为容器.每个容器看起来就像一个真实的操作系统.容器的结构图如下.
从更高层面上讲,Hypervisor是硬件虚拟化(Hypervisor将硬件资源划分为虚拟资源),而容器是操作系统虚拟化(容器将系统资源划分为虚拟资源).
容器可以在更少的资源上运行更多的应用,启动更快,并且支付更少的授权和管理费用,同时面对未知攻击的风险也更小.
docker container run/stop/start/rm
docker container rm -f 是一种暴力删除容器的方式, 更佳的方式是docker container stop再rm,这样给容器中运行的应用停止并清理残留数据的机会.
总结下容器的生命周期,可以根据需要多次停止,启动,暂停以及重启容器,这些操作执行得很快,但是容器及其数据时安全的.直到明确删除容器前,容器都不会丢弃其中的数据.就算容器被删除了,如果将数据存在卷中,数据也会被保存下来.
原文:https://www.cnblogs.com/SheezyGuo/p/12845263.html