基础知识:Docker初学者指南
Docker已迅速成为用于打包和部署现代分布式应用程序。它的名字变成了容器的同义词.但Docker究竟是什么,它是如何工作的,为什么要使用它?继续往下读,我们将解释Docker的关键概念和特性,以及它给企业it带来的好处。我们还将展示如何最大限度地利用Docker容器环境。
在做这些之前,让我们先了解容器的基本原理。
101年集装箱
如果这对你来说是一个全新的领域,你可能会问:什么是容器呢?简单地说,容器是传统的替代品虚拟化方法,该方法使用虚拟机分区基础设施资源。2022世界杯阿根廷预选赛赛程但是如果虚拟机是完全成熟的客户操作系统,那么容器就更重要了流线型的操作环境,仅提供应用程序实际运行所需的资源。2022世界杯阿根廷预选赛赛程由于容器的方式,这是可能的抽象来自主机基础结构。容器不是使用管理程序来分发硬件资源,而是共享2022世界杯阿根廷预选赛赛程内核主机操作系统的其他容器。
这可以显著降低基础设施足迹因为容器可以打包运行代码所需的所有系统组件,而不会像成熟的操作系统那样臃肿。容器体积的减小和简单性也意味着它们可以停止和开始比虚拟机更快,从而使它们更多响应到波动的缩放需求。与管理程序不同,容器引擎不需要模拟整个操作系统。总的来说,容器通常提供更好的服务性能当你将它们与更传统的VM部署进行比较时。
容器与云
容器非常适合今天的云一种应用程序体系结构的方法,它不依赖于一个大型的单片程序,而是可以将事情分解成一套松耦合的程序microservices.这为您提供了许多好处。例如,你可以复制微服务跨虚拟机集群的提升容错.如果单个VM出现故障,您的应用程序可以退回到集群中的其他微服务上继续运行。更重要的是,微服务更容易维护补丁或更新容器的代码和系统环境,而不会影响集群中的其他容器。
容器和DevOps
容器的紧凑设计使它们具有高度的便携性。结果,在……的帮助下DevOps的工具比如Jenkins和CodeShip,它们很容易被整合进去持续集成(CI)而且连续交付(CD)工作流。从开发人员的角度来看,容器也是非常实用的,因为它们可以被托管不同的服务器使用不同的配置,前提是每个服务器操作系统使用相同的Linux内核,或者至少使用一个与容器环境兼容的内核。
这使得编码人员可以专注于代码,而不需要担心代码最终将在其上运行的底层基础设施。同样,开发人员可以在项目中协作工作,而不管他们各自使用的主机环境是什么。
应该你使用码头工人吗?
Docker就是其中之一几个不同的容器平台。那么,为什么选择它而不是其他容器解决方案呢?首先,Docker遥遥领先,的应用最广泛容器服务。它的受欢迎程度完全取决于这样一个事实:它是一个健壮、安全、具有成本效益和功能丰富的解决方案,比任何竞争对手都更容易部署。其次,这是一个开源由持续为项目做出贡献的大型公司和个人社区支持的解决方案。它提供了强有力的支持和一个大的生态系统互补产品、服务合作伙伴和第三方容器hth华体会最新官方网站映像和集成。此外,选择Docker不会将您绑定到特定的供应商。
最后,Docker平台允许你在上面运行它的容器窗户.这是由Linux实现的虚拟化层它位于Windows操作系统和Docker运行时环境之间。除了Linux容器环境,Docker for Windows也支持本地Windows容器。
尽管替代品现在正在逐渐成熟,但纵观容器领域,Docker仍然处于领先地位,并且仍然是大多数用例的最佳选择。但在你决定Docker是否适合你之前,在开始使用Docker平台之前,你需要了解以下几个关键概念:
- 码头工人引擎
这是您在主机上安装的应用程序构建、运行和管理码头工人的容器中。作为Docker系统的核心,它将平台的所有组件统一在一个位置。 - 码头工人守护进程
作为Docker系统的主力,该组件监听和处理API请求管理安装的其他各个方面,如映像、容器和存储卷。 - 码头工人的客户
这是最主要的用户界面用于与Docker系统通信。它通过命令行界面(CLI)接受命令,并将它们发送给Docker守护进程。 - 码头工人形象
一个只读模板用于创建Docker容器。它由一系列的层组成一体化的包,其中包含创建一个完全可操作的容器环境所需的所有安装、依赖项、库、进程和应用程序代码。 - 集装箱码头工人
运行个体的Docker映像的活实例microservice或完整的应用程序堆栈.启动容器时,添加一个顶部可写层,称为容器层,到Docker映像的底层。这用于存储在容器运行时对其所做的任何更改。 - 码头工人注册表
一个编目用于托管、推送和拉出Docker映像的系统。您可以使用自己的本地注册中心或第三方托管的众多注册中心服务之一(例如,Red Hat Quay、Amazon ECR、谷歌容器注册中心和Docker Hub)。一个码头工人注册表将图像组织到存储位置,称为存储库,其中每个存储库包含共享相同映像名称的Docker映像的不同版本。
有了这些基础知识,让我们简单地看看Docker容器的其他几个方面,你应该知道:
- 集装箱编配
一旦准备好将应用程序部署到Docker,就需要一种方法提供、配置、扩展和监控你的容器跨越了你的微服务架构。开源编配系统,如Kubernetes、Mesos和Docker Swarm,可以为您提供管理容器集群所需的工具。通常,它们能够:
- 在容器之间分配计算资源2022世界杯阿根廷预选赛赛程
- 根据应用程序工作负载添加或删除容器
- 管理容器之间的交互
- 监视容器的运行状况
- 平衡微服务之间的负载
- 成本和性能优化
最后,你需要这样做优化您的部署,以确保您从容器中获得最佳性能和效率。首先简化通过只打包应用程序需要的内容来尽可能多地使用容器。这种最佳实践也有助于最大限度地减少它们攻击表面从而提高安全性。为了确保容器尽可能地最有效地利用资源,您需要例行执行2022世界杯阿根廷预选赛赛程监控确保它们在CPU和内存分配、集群大小和微服务复制方面保持了良好的平衡。这些步骤在基于云的部署中特别重要,因为不必要的资源消耗会为您的每月云账单增加额外和不必要的成本。
了解更多关于Docker的信息
发布日期:2020年6月22日
最后更新:2021年3月17日
