文章目录

  • 什么是容器?
  • 什么是软件容器化?
  • Docker是什么?
  • 码头建筑
  • 码头引擎
  • 码头枢纽

在开始快速浏览Docker容器之前,先了解我们的团队是如何开发和部署应用程序的。我们还将简要讨论该团队面临的一些挑战。

在开发和管理应用程序的过程中,通常会涉及一个或多个团队。开发团队创建软件,运营团队负责部署这些应用。此外,运营团队还负责管理应用托管基础架构。

例如,假设我们要开发一个订单跟踪门户,公司的所有专卖店都可以使用它。在应用程序的开发和发布期间,我们的应用程序将由多个环境托管。首先,开发团队在开发环境中开发和测试软件。然后,软件将被部署到质量保证(QA)环境、预生产环境和最终生产环境。

在上述方案中,我们需要考虑几个挑战:

托管环境的管理 这些不同的环境都需要软件和硬件管理。 必须确保每个环境中已安装的软件和已配置的硬件相同。 此外,还需要以一致且易于复制的方式配置每个环境的网络访问、数据存储和安全性等方面。软件交付的连续性 将应用程序部署到环境的过程必须始终一致。 每个部署包都必须包含所有系统包、二进制文件、库、配置文件以及将确保应用程序功能完备的其他项。 此外,还需要确保所有这些依赖项都与软件版本和体系结构相匹配。硬件的高效使用 每个已部署应用程序都必须通过与在同一硬件上运行的其他应用程序隔离的方式运行。 我们的目标是在每个服务器上运行多个应用程序以充分利用资源,并使这些应用程序不会相互影响。应用程序可移植性 应用程序可移植性不可或缺,有多种原因。 托管环境可能出现故障,或者我们可能需要横向扩展应用程序。 在这两种情况下,可能都需要将软件重新部署到新环境。 我们想要将软件从一个主机移动到另一个主机,即使底层基础结构不同。 此类移动需要尽量快速地完成,以便为客户减少停机时间。

在查看有助于解决这些挑战的Docker特性之前,我们将讨论几个概念,并对Docker架构有一个大致的了解。

什么是容器?

容器是一个松散隔离的环境,可用于生成和运行软件包。这些包包括在任何计算环境中快速可靠地运行应用程序所需的代码和所有依赖项。我们称这些包为容器图像。

图像是我们用来分发应用程序的单位。

什么是软件容器化?

软件容器化是一种操作系统虚拟化方法,用于在不使用虚拟机(VM)的情况下部署和运行容器。容器可以在物理硬件、云和虚拟机上运行,也可以在多个操作系统上运行。

Docker是什么?

Docker是一个开发、交付和运行集装箱的集装箱化平台。Docker不使用虚拟机监视器。如果你想开发和测试应用程序,你可以在你的台式机或笔记本电脑上运行Docker。桌面Docker支持Linux,Windows和macOS。对于生产系统,Docker适用于服务器环境,包括Linux和Microsoft Windows Server 2016及更高版本的许多变体。很多云(包括Azure)都支持Docker。

码头建筑

Docker平台包含几个用于生成、运行和管理容器化应用程序的组件。

码头引擎

Docker引擎包含几个配置为客户端-服务器实现的组件,其中客户端和服务器同时运行在同一台主机上。客户端使用REST API与服务器通信,这也使客户端能够与远程服务器实例通信。

该图中有一个正方形表示带有容器图像的Docker Hub,还有一个单独的正方形表示Docker主机。箭头表示Docker集线器和Docker主机之间的通信。

Docker主机包含2个对象。一个代表Docker引擎,另一个代表正在运行的Docker容器。Docker主机对象包含4个对象。它们是Docker服务器、Docker REST API、Docker客户端和存储的容器映像。

一些箭头显示了Docker服务器、REST API和Docker客户端之间的通信。这些箭头表示用户如何通过REST API与Docker服务器通信。

而其他箭头示出了Docker服务器、运行的容器和存储的容器映像之间的通信。这些箭头指示Docker服务器如何加载存储的容器映像和管理运行的容器。

码头客户

Docker客户端是一个名为Docker的命令行应用,它为我们提供了一个与Docker服务器交互的命令行界面(CLI)。Docker命令使用Docker REST API向本地或远程服务器发送指令,并作为管理容器的主界面。

Docker服务器

Docker服务器是一个名为dockerd的守护进程。Docker守护进程通过Docker REST API响应来自客户端的请求,并且可以与其他守护进程进行交互。此外,Docker服务器负责跟踪容器的生命周期。

Docker对象

您将创建和配置多个对象来支持容器部署。这些对象包括网络、存储卷、插件和其他服务对象。我们不会在这里介绍所有这些对象,但是请记住,我们可以根据需要创建和部署这些对象。

码头枢纽

Docker Hub是一个软件即服务(SaaS) Docker容器注册表。Docker registry是一个用于存储和分发已创建的容器映像的存储库。Docker Hub是Docker默认的图像管理公共注册表。

请记住,您可以创建并使用一个专用的Docker注册表,也可以使用多个可用的云提供商选项之一。例如,您可以使用Azure容器注册表来存储Docker容器,以便在多个支持Azure容器的服务中使用。

发表评论

后才能评论