要在生产中运行Docker容器,您需要设计一个最能满足您需求的Docker容器架构。Chris Tozzi解释了在大规模运行时所需要的。

随着Docker的成熟?可以通过检查托管集装箱应用程序所需的不同基础架构来找到这个问题的答案。

什么是容器架构?

简单地说,容器架构是设置在容器内托管应用程序的硬件和基础架构。

管理Docker容器架构与运行只有一个容器不同。运行一个容器只需要一个主机操作系统,容器图像和Docker。没有太多的架构涉及。

但是,如果您想在生产中运行容器化应用程序,则需要更多的功能。您将需要运行多个容器,以确保应用程序的高可用性。您将需要在多个物理服务器上分发您的应用程序。您将需要一种自动化启动和停止容器的过程的方法。等等。

实现这些各种任务的组件以及将它们连接在一起的方式构成了容器架构。

Docker容器架构今天

早期的Docker容器架构比较简单。它涉及一个Linux主机操作系统,一个协调器,通常是用于存储容器映像的注册表。它通常不包括任何其他内容,因为当时没有太多的其他东西可以包含在一个小而简单的Docker生态系统中。

但是,这个生态系统的扩展,在构建Docker容器架构时,突然有更多的选择。以下是您必须做的一些决定,这反映了容器架构在过去一年中发展的方式:

今天的Docker容器架构由各种移动件组成。

硬件选件容器可以由虚拟机(VM)或物理裸机服务器托管。使用VM主机给您一些额外的灵活性,因为您可以轻松地移动和复制虚拟机映像。但是,如果您希望容器化的应用程序充分利用裸机硬件 - 与虚拟机不同的是容器,那么您就需要运行所有的裸机第三个选项是使用系统容器平台托管Docker容器,该平台承诺提供虚拟机具有裸机性能的灵活性,例如OpenVZ或LXD。

主机操作系统直到最近,Linux是唯一可以作为Docker主机的操作系统。在2016年秋天,Docker公布了Windows Server 2016的正式支持,现在,Docker的Windows支持仍然是基本的,我不建议使用Windows作为Docker生产环境的主机。但希望在相对不久的将来成为一个现实的选择。

云或本地基于云的容器即服务(CaaS)平台(如Amazon弹性云计算容器服务和Azure容器服务)的出现使得在云中部署容器变得更为容易如果您不想使用CaaS,您可以随时在云端的虚拟服务器上设置Docker。但请记住:云中运行的容器带有与云基础设施相关的所有一般行李,包括较少的控制和可能遇到合规性问题。

Orchestrator的任何可生产就绪的容器集群需要一个协调者来配置和管理它。幸运的是,现在有很多成熟的协调者可以选择。Swarm(现在已经建立到Docker本身),Kubernetes和Mesos是主要的选择,但这个列表是无限的。不幸的是,您可以实际使用的业务流程的范围可能会被您选择包含在Docker容器架构中的其他组件所限制。如果您使用CaaS,则尤其如此; 在许多情况下,每个CaaS只支持某种类型的协调者。例如,Red Hat OpenShift仅运行Kubernetes,Docker Datacenter需要Swarm。

图像注册表你想在云端托管你的容器图像吗?如果是这样,像Docker Hub这样的公共注册表服务是非常适合的。为了更多的隐私和控制,您需要考虑一个内部部署的注册表。有很多内部的注册表选项,包括私人Docker注册表,VMware Harbor以及许多CaaS平台内置的注册表。

安全工具如果您的容器架构不安全,则您的容器架构不足以用于生产用途。为了保护网络安全,您需要通过选择和实施正确的工具来锁定架构的每一层。例如,像Clair这样的图像扫描器可以帮助保护注册表内的容器图像。安全性增强的Linux和AppArmor可以加强Linux主机上的Docker守护进程。而像Aqua Security Software这样以容器为中心的安全厂商正在推出安全解决方案,这些解决方案可以一次性保护整个Docker容器架构。

监控最后但并非最不重要的是,您的体系结构应该包括监控集装箱化应用程序和聚合日志的方法 您的方式将部分取决于您的基础设施中的其他组件。例如,如果您在Amazon Web Services公共云上运行容器,则CloudWatch是您的日志记录和监视选项。但您也可以部署专门为容器设计的监控工具。CAdvisor是一个受欢迎的开源选择,像New Relic和Netuitive这样的供应商也提供容器监控。

所以,现在你知道今天的Docker容器架构由各种动作片组成。这意味着您在设计容器堆栈时有很多选择。随着集装箱生态系统变得更大,选择的数量也将进一步增加。

原文: http://searchmicroservices.techtarget.com/tip/Seven-ways-the-mature-Docker-container-architecture-changes-the-game
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐