用于在虚拟化容器中部署和分发应用程序的Docker开源平台具有诸多优点。本文解释了企业应当了解这项流行技术的几个方面。
Docker容器架构
Docker容器的架构包括装有主机操作系统的物理机器。主机操作系统上面部署了Docker引擎,引擎有助于构建用来托管运行应用程序的虚拟容器。Docker引擎构建隔离的容器,应用程序就可以部署在这些容器上面。不像典型的虚拟机管理程序解决方案,Docker不需要为每个应用程序构建单独的虚拟机,也不需要为每个虚拟机安装来宾操作系统(guest OS)。
在基于虚拟机管理程序的应用程序虚拟化中,虚拟化平台(比如Hyper-V或VMware)部署在装有主机操作系统的物理服务器上。虚拟化平台上构建了虚拟机,每个虚拟机都有独立的来宾操作系统。应用程序部署在所有这些层上。托管运行那么多的虚拟机(每个虚拟机都有独立的来宾操作系统)让这种架构对资源的需求量比Docker容器大得多。
容器自动化
Docker容器通常提供了内置工具,使容器配置过程实现自动化,为此它可以利用来自任何现有应用程序容器的源代码。这需要处理服务、依赖项、封装及更多操作。Docker还提供了一系列广泛的预先配置的Docker映像,可以帮助企业组织快速部署应用程序容器。
为了实现同样这一系列任务,任何虚拟机管理程序解决方案都需要一套复杂的程序,包括将应用程序连同依赖项和工具一同克隆到隔离的程序包中。
计算资源需求
在Docker容器中,应用程序直接建立在Docker引擎上,因而不需要来宾操作系统。这项功能有助于减少托管运行多个来宾操作系统的总体系统要求(比如处理器或内存)。这还减少了对计算资源的需求,因而降低了部署成本。不像Docker容器,基于虚拟机管理程序的应用程序需要额外的来宾操作系统以及应用程序实际运行所需要的其他依赖项。
硬件兼容性
借助Docker容器,管理员就能构建应用程序,没必要考虑来宾操作系统方面的任何依赖项。这使得应用程序具有轻量级、运行快、开销低的优点,同时消除了潜在的平台兼容性问题。
在虚拟机管理程序解决方案中,每个虚拟机专用的来宾操作系统使得响应起来比Docker容器应用程序成本更高、速度更慢。在特定虚拟机管理程序平台中构建的任何虚拟机无法在其他虚拟机管理程序平台上运行。
企业级功能
虽然许多企业组织已经开始使用Docker容器用于应用程序虚拟化,但这项技术仍缺少一些企业级虚拟化功能,比如细粒度访问控制、容器迁移、日志和备份恢复等。而大多数虚拟机管理程序平台支持诸如此类的企业级功能。如果企业组织在考虑将虚拟化应用程序部署到生产环境中,建议使用虚拟机管理程序解决方案,就因为这一点:基于Docker的解决方案在提供企业级功能方面有所欠缺。
供应商
现在有许多供应商提供关于容器技术的产品和服务。从2013年起,负责Docker开源项目的商业公司Docker,Inc.,开始主导容器虚拟化的市场。最近,包括拥有LXD技术的Canonical以及拥有Rocket技术的CoreOS等其他供应商,也开始进入容器市场。
原文标题:Docker containers 9 fundamental facts