在虚拟化技能被引入后,虚拟化技能允许我们在单个物理服务器的 CPU 上运行多个虚拟机(VM)。虚拟化允许应用步调在虚拟机之隔断离,不仅避免了资源冲突而且还能提供一定水平的安全性,因为一个应用步调的信息不能被另一个应用步调自由访问。
虚拟化允许我们更好地利用物理服务器中的资源,有更好的可伸缩性,因为可以轻松地添加或更新应用步调,降低硬件成本等等。通过虚拟化技能,我们可以将一组物理资源表现为一次性虚拟机的集群。
每个VM都是在虚拟化硬件之上运行全部组件(包罗本身的操作系统)的完备机器。
3. 容器化部署阶段
容器雷同于 VM,但它们具有松散的隔离属性,以便在应用步调之间共享操作系统。容器的本质是进程(利用了 NameSpace 做隔离,Cgroups 做限定, rootfs 做文件系统的特别进程),因此,容器被认为是比 VM 更加轻量级的。与虚拟机雷同,容器有本身的文件系统、CPU共享、内存、进程空间等。由于它们与底层基础办法分离,所以它们可以跨云和操作系统版本移植。
容器技能可以达到企业离开云厂商的欺凌绑(绑)定(架)。
Control groups
虽然有了 NameSpace 技能可以实现资源隔离,但进程照旧可以不受控的访问系统资源,比如 CPU、内存、磁盘、网络等,为了控制容器中进程对资源的访问,Docker 采用 control groups 技能(也就是cgroup),有了 cgroup 就可以控制容器中进程对系统资源的消耗了,比如你可以限定某个容器利用内存的上限、可以在哪些 CPU 上运行等等。