菜单图标

Docker

Docker是一个开源平台,用于构建,部署和管理容器化应用程序。了解容器,如何与VM进行比较,以及为什么Docker被广泛采用和使用。

什么是码头?

Docker.是一个开源 集装箱化 平台。 Docker使开发人员能够将应用程序包装为包含所有操作系统(OS)库和在任何环境中运行代码所需的所有操作系统(OS)库和依赖关系的容器标准化可执行组件。

虽然开发人员可以在没有Docker的情况下创建容器,但Docker使其更轻松,更简单,更安全地构建,部署和管理容器。它基本上是一个工具包,使开发人员能够使用简单命令和保存工作自动化构建,部署,运行,更新和停止容器。

Docker.也指的是 Docker.,Inc。,销售商业版Docker的公司,以及 Docker.开源项目,Docker Inc.和许多其他组织和个人的贡献。

为什么要使用容器?

容器 通过操作系统(OS)流程隔离和虚拟化进行, 这使得多个应用程序组件能够以与机器的方式相同的方式共享OS内核的单个实例的资源 虚拟化 启用多个 虚拟机(VM) 共享单个硬件服务器的资源。

容器提供VM的所有好处,包括应用隔离,具有成本效益的可扩展性和可处理性。但是附加抽象层(在OS级别)提供了重要的额外优点:

  • 较轻的重量: 与VM不同,容器不会携带整个操作系统实例的有效载荷 - 它们仅包括执行代码所需的操作系统进程和依赖项。
  • 更高的资源效率: 使用容器,您可以在使用VMS的同一硬件上运行多次应用程序的副本。这可以减少云支出。
  • 改善开发人员生产力: 与VM相比,容器更快,更易于部署,提供和重新启动。这使得它们非常适合使用 持续集成连续交货 (CI / CD)管道和更适合采用敏捷和敏捷的发展团队 德沃斯 practices.

了解有关Contailization的更多信息以及集装箱中的VPS如何与VMS的“Containization解释”:

为什么要使用Docker?

Docker.今天非常受欢迎,“Docker”和'容器'可互换使用,但是多年来,第一个容器相关技术可用 - 甚至十年 - 在2013年向公众发布了码头。最值得注意的是,2008年,LXC(为 Linu.X Containers)是在Linux内核中实现的,完全启用虚拟化,以获得一个Linux的一个实例。

Docker.专门利用LXC的第一个版本,但Docker很快开发了自己的自定义容器化技术,使能下列:

  • 改进 - 无缝便携性: 虽然LXC容器通常是参考机器特定的配置,但Docker容器在任何桌面,数据中心和云环境中都没有修改。
  • 甚至更轻的重量和更粒度更新: 使用LXC,可以在单个容器内组合多个进程。使用Docker容器,每个容器中只能运行一个进程。这使得可以构建可以继续运行的应用程序,而其中一个部件被删除以进行更新或修复。
  • 自动集装箱创建: Docker.可以根据应用程序源代码自动构建一个容器。
  • 容器版本控制: Docker.可以跟踪容器图像的版本,回滚回到以前的版本,以及构建版本的跟踪以及如何。它甚至可以仅在现有版本和新版本之间上传Δ。
  • 容器重用: 现有容器可以用作 基础图像 - 像构建新容器的模板一样。
  • 共享容器库: 开发人员可以访问包含数千个用户贡献的容器的开源注册表。

出于这些原因,Docker采用迅速爆炸并继续激增。在这个写作,Docker Inc.报告 1050亿个集装箱下载-UP仅需一年前500亿 - 超过750个企业码头客户。

Docker.工具和条款

使用Docker时,您将遇到的一些工具和术语包括以下内容:

dockerfile.

每个Docker容器都以简单的文本文件开始,其中包含如何构建Docker容器映像的说明。 dockerfile. 自动化Docker图像创建过程。它基本上是Docker引擎将运行的命令列表,以便组装图像。

Docker.映像

Docker.映像 包含可执行应用程序源代码以及应用程序代码需要作为容器运行的所有工具,库和依赖关系。运行Docker映像时,它将成为容器的一个实例(或多个实例)。

可以从头开始构建Docker图像,但大多数开发人员将它们从常见的存储库中拉下来。可以从单个基本图像创建多个Docker图像,并且它们将共享其堆栈的共同性。

Docker.图像由 层数,并且每个层对应于图像的版本。每当开发人员对图像进行更改时,创建了一个新的顶层,此顶层将前一个顶层替换为图像的当前版本。以前的图层保存用于回滚或在其他项目中重新使用。

每次从码头图像创建容器时,都会创建一个名为容器层的另一个新图层。对容器的更改 - 例如文件的添加或删除 - 仅保存到容器层,仅在容器运行时存在。此迭代图像创建过程可以提高整体效率,因为多个实时容器实例可以从单个基础图像运行,并且当它们这样做时,它们会利用公共堆栈。

码头容器

Docker.容器是Docker图像的实时运行实例。虽然Docker图像是只读文件,但容器是实时的,短暂的,可执行内容。用户可以与它们进行交互,管理员可以调整其设置和条件。

Docker. Hub.

Docker. Hub. 是Docker图像的公共存储库,称为“世界上最大的集装箱图像的库和社区”。它拥有来自商业软件供应商,开源项目和个人开发人员的100,000多种集装箱图像。它包括由Docker,Inc。生产的图像,属于Docker可信注册表的经过认证的图像,以及数以万计的其他图像。

所有Docker Hub用户都可以分享他们的图像。它们还可以下载预定义的基础图像以用作任何容器化项目的起点。

Docker.部署和编排

如果您只运行一些容器,则在Docker Engine本身内管理您的应用程序非常简单。但是,如果您的部署包括数千个容器和数百种服务,则在没有这些目的的工具的帮助下,它几乎无法管理。

Docker.撰写

如果您在多个容器中构建应用程序的应用程序,可以使用所有驻留在同一主机上的多个容器中,您可以使用 Docker.撰写 管理应用程序的架构。 Docker Compose创建一个Yaml文件,该文件指定应用程序中包含的服务,并且可以使用单个命令部署和运行容器。使用Docker Compose,您还可以定义存储的持久卷,指定基本节点和文档和配置服务依赖项。

Kubernetes.

要在更复杂的环境中监控和管理容器生命周期,您需要转到一个 容器编排工具。虽然Docker包含自己的编排工具,称为Docker Swarm,大多数开发人员选择 Kubernetes. instead.

看 ”Docker. Swarm与Kubernetes:比较“对于两个选项的细分。

Kubernetes.是一个开源容器编排平台,从谷歌开发的项目中降临。 Kubernetes计划和自动化对基于容器的架构管理的组件,包括集装箱部署,更新,服务发现,存储配置, 负载均衡,健康监测等等。

对于Kubernetes的更深层次,看到视频“kubernetes解释”: 

Kubernetes.的开源生态系统 - 包括 istio..编织 - 企业组织部署高生产率 平台 - AS-AS-Service(PAAS) 对于集装箱应用和更快的斜坡 无服务器计算.

2017年10月,Docker宣布将Kubernetes无缝地集成到Docker平台中。尽管如此,许多人错误地相信Kubernetes和Docker是反对技术。在视频“Kubernetes与Docker:这不是一个/或问题,”Sai Vennam通过Kubernetes与Docker问题周围的误解,概述了Docker和Kubernetes的关键优势: 

Docker.和IBM云

Docker.,Inc。和 IBM云 合作介绍了一个版本 码头企业 这是在IBM Cloud上运行的目的是。该容器的AS-Service平台可帮助企业管理并确保其在当今复杂的IT基础架构中的各种应用程序。它在IBM Cloud中提供了一个非托管本机Docker环境,可以访问所有Docker平台基本和高级层功能以及IBM Cloud的 完整的服务目录.

此外,Docker容器在内部完全支持 IBM云 Kubernetes服务,它提供了全托管的流行容器编排解决方案。 IBM Cloud Kubernetes服务使Devops实践能够将更高的速度和效率构建到其管道上,可以绑定到SlockChain和Watson等高级产品,并且即使在规模上也可以使用Docker容器。

了解有关IBM Cloud上的包含容器的建筑物的更多信息, 注册免费IBM云帐户 today.