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