你应该知道的 9 个 Docker 技术知识

用于在虚拟化容器中部署和分发应用程序的Docker开源平台具有诸多优点。本文解释了企业应当了解这项流行技术的几个方面。

Docker容器架构

Docker容器的架构包括装有主机操作系统的物理机器。主机操作系统上面部署了Docker引擎,引擎有助于构建用来托管运行应用程序的虚拟容器。Docker引擎构建隔离的容器,应用程序就可以部署在这些容器上面。不像典型的虚拟机管理程序解决方案,Docker不需要为每个应用程序构建单独的虚拟机,也不需要为每个虚拟机安装来宾操作系统(guest OS)。

在基于虚拟机管理程序的应用程序虚拟化中,虚拟化平台(比如Hyper-V或VMware)部署在装有主机操作系统的物理服务器上。虚拟化平台上构建了虚拟机,每个虚拟机都有独立的来宾操作系统。应用程序部署在所有这些层上。托管运行那么多的虚拟机(每个虚拟机都有独立的来宾操作系统)让这种架构对资源的需求量比Docker容器大得多。

容器自动化

Docker容器通常提供了内置工具,使容器配置过程实现自动化,为此它可以利用来自任何现有应用程序容器的源代码。这需要处理服务、依赖项、封装及更多操作。Docker还提供了一系列广泛的预先配置的Docker映像,可以帮助企业组织快速部署应用程序容器。

为了实现同样这一系列任务,任何虚拟机管理程序解决方案都需要一套复杂的程序,包括将应用程序连同依赖项和工具一同克隆到隔离的程序包中。

计算资源需求

在Docker容器中,应用程序直接建立在Docker引擎上,因而不需要来宾操作系统。这项功能有助于减少托管运行多个来宾操作系统的总体系统要求(比如处理器或内存)。这还减少了对计算资源的需求,因而降低了部署成本。不像Docker容器,基于虚拟机管理程序的应用程序需要额外的来宾操作系统以及应用程序实际运行所需要的其他依赖项。

进程隔离和安全

在Docker容器中,每个应用程序或容器与其他应用程序或容器隔离开来,但它们都使用同一个根(root)。这提供了简化管理这个优点,不过也带来了几个缺点。比如说,万一根受到危及,主机容器就可能面临险境。相比之下,虚拟机管理程序解决方案提供了多少有点全面的隔离,具体取决于需求。

Docker公司正在竭力解决Docker容器的安全问题。该公司最近与业内专家协作,并与互联网安全中心一起发布了部署Docker 1.6或更新版技术的安全最佳实践。

启动时间

容器直接建立在Docker引擎上;启动应用程序所花的时间完全取决于应用程序的类型。底层内核已经在运行,没有中间层操作系统(来宾操作系统)缩短了容器的启动时间。在虚拟机管理程序中,系统总的启动时间包括来宾操作系统的启动时间和应用程序的启动时间。

应用程序交付

Docker允许在“Docker化”的容器中跨不同环境分发或交付应用程序,所有依赖项绑定为一个程序包。比如说,想把某个应用程序从开发环境迁移到测试环境,然后迁移到生产环境,整个容器就可以作为一个实体来加以封装和迁移;应用程序仍与所有的环境配置绑定起来。这有助于跨不同部门、团队成员之间或者通过云来迁移应用程序,没有导致故障的任何风险。

在虚拟机管理程序解决方案中,封装和迁移应用程序连同所有相关服务和工具总是有可能导致环境遭到破坏。

硬件兼容性

借助Docker容器,管理员就能构建应用程序,没必要考虑来宾操作系统方面的任何依赖项。这使得应用程序具有轻量级、运行快、开销低的优点,同时消除了潜在的平台兼容性问题。

在虚拟机管理程序解决方案中,每个虚拟机专用的来宾操作系统使得响应起来比Docker容器应用程序成本更高、速度更慢。在特定虚拟机管理程序平台中构建的任何虚拟机无法在其他虚拟机管理程序平台上运行。

企业级功能

虽然许多企业组织已经开始使用Docker容器用于应用程序虚拟化,但这项技术仍缺少一些企业级虚拟化功能,比如细粒度访问控制、容器迁移、日志和备份恢复等。而大多数虚拟机管理程序平台支持诸如此类的企业级功能。如果企业组织在考虑将虚拟化应用程序部署到生产环境中,建议使用虚拟机管理程序解决方案,就因为这一点:基于Docker的解决方案在提供企业级功能方面有所欠缺。

供应商

现在有许多供应商提供关于容器技术的产品和服务。从2013年起,负责Docker开源项目的商业公司Docker, Inc.,开始主导容器虚拟化的市场。最近,包括拥有LXD技术的Canonical以及拥有Rocket技术的CoreOS等其他供应商,也开始进入容器市场。

未经允许不得转载:爱前端网 » 你应该知道的 9 个 Docker 技术知识

赞 (0) 打赏


觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏