无论是虚拟机还是物理机,都是硬件/基础设施的一种交付方式,本质上是一个层次的;而容器主要要解决以软件为中心的系列问题(开发、测试、部署、发布、运行)。
在虚拟机中运行容器,已经成为一种实践中的惯例,比如,AWS的container服务就是只运行在虚拟机中的。
关于容器docker和虚拟化技术
Docker守护进程可以直接与主操作系统进行通信,为各个Docker容器分配资源;它还可以将容器与主操作系统隔离,并将各个容器互相隔离。Docker通常用于隔离不同的应用,例如前端,后端以及数据库。
Docker有着小巧、迁移部署快速、运行高效等特点,但隔离性比服务器虚拟化差:不同的集装箱属于不同的运单(Docker上运行不同的应用实例),相互独立(隔离)。但由同一个库管人员管理(主机操作系统内核),因此通过库管人员可以看到所有集装箱的相关信息(因为共享操作系统内核,因此相关信息会共享)。
虚拟机更擅长于彻底隔离整个运行环境。例如,云服务商通常采用虚拟机技术隔离不同的用户。虚拟机启动需要数分钟,而Docker容器可以在数毫秒内启动。由于没有臃肿的操作系统,Docker可以节省大量的磁盘空间以及其他系统资源。
服务器虚拟化就好比在码头上(物理主机及虚拟化层),建立了多个独立的“小码头”—仓库(虚拟机)。其拥有完全独立(隔离)的空间,属于不同的客户(虚拟机所有者)。每个仓库有各自的库管人员(当前虚拟机的操作系统内核),无法管理其它仓库。不存在信息共享的情况。
因此,我们需要根据不同的应用场景和需求采用不同的方式,使用Docker技术或使用服务器虚拟化技术。
西部数码的容器云产品是通过docker技术,在集群服务器上部署容器服务实现,功能强大、简单易用,拥有上万linux镜像,灵活强大,安全可靠。高性价比的容器云产品链接 https://www.west.cn/paas/container/