Docker 简介:什么是、架构、工作流
已发表: 2020-04-27目录
虚拟化的历史
不久前,部署服务是一个缓慢而痛苦的过程。 该过程涉及开发团队编写代码,然后由运营团队在金属机器上进行部署。 运营团队过去常常需要大量工作,因为他们必须寻找语言编译器、库和补丁才能使代码正常工作。
如果流程有任何错误或错误,则必须重新开始——开发团队将修复错误或错误,而运营团队将再次开始部署代码。
当 Hypervisor 被开发出来时,事情变得更好了。 那么,什么是管理程序? 这些是虚拟机 (VM) 的集合,它们可能会定期持续运行或关闭,尤其是在不使用时。 虚拟机在加速修复错误和部署代码的过程中确实有所帮助,但它们仍然存在一些问题。 Docker 容器是真正的游戏规则改变者。 他们甚至解决了虚拟机中存在的问题。
阅读: Kubernetes 与。 Docker:主要区别
什么是 Docker?
它是一个开源平台,全球开发人员使用它来运行、打包和分发应用程序。 Docker使应用程序的封装从第一步到最后的过程非常简单和高效。 要更好地了解 Docker,您必须了解容器是什么以及它们是如何工作的。
容器不过是软件一部分的独立、轻量级和可执行包,它附带运行它所需的一切。 容器绝不依赖于平台。 因此,Docker 与基于 Windows 和 Linux 的机器兼容。 此外,如果需要,您甚至可以在虚拟机上运行 Docker。 Docker 旨在实现的基本目标是让开发人员使用分布式架构来运行微服务应用程序。

与用于执行硬件抽象的虚拟机不同,Docker 升级并在操作系统级别执行不同资源集的抽象。 这提供了几个好处,包括基础设施的分离和应用程序的可移植性等。 换句话说,与用于抽象硬件服务器的虚拟机不同,Docker 基于容器的方法通过抽象操作系统内核来工作。 这是一个很好的虚拟化替代方案,可以更快地创建轻量级实例。 Docker 有两个版本:
企业版 (EE):
此版本专为 IT 团队和企业开发而设计。 此版本用于开发、发布和运行应用程序。
社区版 (CE):
此版本供正在探索基于容器的应用程序或开始使用 Docker 的个人和小型团队使用。
阅读:全栈项目理念和主题
码头工人工作流程
在本节中,我们将重点介绍 Docker 引擎及其不同的组件。 这将帮助我们在继续 Docker 架构之前更好地了解 Docker 的工作原理。 Docker 引擎是使开发人员能够使用这个基于容器的应用程序执行各种功能的力量。 您可以使用下面列出的组件来构建、打包、发布和运行应用程序。
1. Docker 守护进程
它是持续帮助您管理图像、存储卷、网络和容器的后台进程。 它一直在寻找 Docker API 请求来处理它们。
2. 码头工人 CLI
它是一个与 Docker Daemon 交互的接口客户端。 它可以帮助开发人员简化管理容器实例的过程。 这是开发人员更喜欢 Docker 而不是其他类似应用程序的主要原因之一。

3. Docker引擎休息API
它促进了 Docker 守护进程和应用程序之间的交互。 通常需要 HTTP 客户端才能访问这些 API。
码头工人架构
Docker 架构是基于客户端-服务器的架构。 它具有以下三个主要组件:
- Docker 主机
- 码头工人客户端
- Docker 注册表
- 泊坞窗对象
在初始阶段,Docker 客户端与守护进程交互,守护进程负责执行开发、运行和分发 Docker 容器的大部分工作。
Docker 守护程序和客户端可以在单个系统上运行,或者开发人员可以使用远程守护程序将其与本地 Docker 客户端连接。 Rest API 用于在 Docker 守护进程和客户端之间建立通信。 这可以通过网络接口或 UNIX 套接字完成。
现在让我们详细讨论 Docker 架构组件。
另请阅读:为什么要成为全栈开发人员?
1.Docker主机
Docker 主机负责运行 Docker 守护进程。 Docker Daemon 处理 API 请求,包括 docker build 和 docker run 等。 它还管理图像、网络、容器和其他 Docker 对象。 守护进程可以相互通信以管理不同的 Docker 服务。
2.Docker客户端
它只不过是用户用来与 Docker 交互的方法。 Docker 客户端发送我们的请求,例如 docker run,Docker 构建到 Docker 守护进程。 Docker 客户端的一个非常重要的特性是它可以与多个守护进程进行通信。
3. Docker 注册表
注册表是可扩展且无状态的服务器端应用程序。 它不仅存储 Docker 映像,还允许开发人员分发它们。 Docker 为我们提供了创建自己的镜像的灵活性,或者我们可以使用公共注册表。 这些注册表包括Docker Cloud 和 Docker Hub等。
Docker 的配置是这样的,它总是转向 Docker Hub 和其他公共注册表来查找图像。 但是,我们可以选择创建自己的注册表。 因此,我们可以在 docker run 和 docker pull 命令的帮助下使用我们自己的注册表提取所需的图像。 Docker push 命令将所需的镜像推送到我们创建的注册表中。

4. Docker 对象
我们在使用 Docker 时使用并创建了几个对象。 这些对象包括容器、图像、插件、卷、网络等。
5. Docker 镜像
Docker 镜像只不过是一个只读模板,它为我们提供了创建容器所需的指令。 在许多情况下,一个图像与另一个图像有联系。 两个图像的区别在于增加的定制层。 换句话说,图像也可以定义为容器的不可变快照。 图像体积小、重量轻、速度快。
6. Docker 容器
让我们按照不同的方法来理解 Docker 容器。 所以,如果一个图像可以用来表示一个类,一个容器可以是它的实例。 换句话说,容器是一个运行时对象。 我们可以在 Docker CLI 或 API 的帮助下创建、启动、移动、停止或删除容器。 容器也可以附加到存储并连接到一个或多个网络。 根据容器的当前状态,我们还可以创建一个新图像。
结论
既然您知道 Docker 架构及其组件是什么,那么您就可以更好地了解其受欢迎程度的上升。 它简化了基础架构管理,并有助于使实例更快、更轻、更具弹性。
如果您有兴趣了解有关全栈编码的更多信息,请查看 upGrad 和 IIIT-B 的全栈软件开发 PG 文凭,该文凭专为工作专业人士设计,提供 500 多个小时的严格培训、9 个以上的项目和作业, IIIT-B 校友身份、实用的实践顶点项目和顶级公司的工作协助。