Docker架构及其组件初学者指南

让我们熟悉Docker架构及其基本组成部分。

我假设您对Docker有基本的了解。如果没有,您可以参考this previous article

我相信您了解DevOps中Docker的重要性。现在,在这个神奇的工具背后,一定有一个令人惊叹的、经过深思熟虑的架构。不是吗?

但在我谈论这个之前,让我展示一下之前和当前的虚拟化系统。

传统虚拟化 vs. 新一代虚拟化

以前,我们使用虚拟机,每个虚拟机都有一个占用很大空间并使其变得笨重的操作系统。

现在在Docker容器的情况下,您只有一个操作系统,资源在容器之间共享。因此它是轻量级的,启动只需几秒钟。

Docker架构

下面是Docker架构的简单图示。

让我解释一下Docker架构的组成部分。

Docker引擎

它是整个Docker系统的核心部分。Docker引擎是一种遵循客户端-服务器架构的应用程序。它安装在主机上。Docker引擎有三个组件:

  • 服务器:它是称为dockerd的Docker守护程序。它可以创建和管理Docker镜像、容器、网络等。
  • Rest API:它用于指示Docker守护程序要做什么。
  • 命令行界面(CLI):它是一个用于输入docker commands的客户端。

Docker客户端

Docker用户可以通过客户端与Docker进行交互。当任何Docker命令运行时,客户端将其发送到dockerd守护程序,然后由它执行。Docker命令使用Docker API。Docker客户端可以与多个守护程序通信。

Docker注册表

这是存储Docker镜像的位置。它可以是公共Docker注册表或私有Docker注册表。Docker Hub是Docker镜像的默认位置,它存储了公共注册表。您还可以创建和运行自己的private registry

当您执行docker pull或docker run命令时,所需的Docker镜像会从配置的注册表中获取。当您执行docker push命令时,将Docker镜像存储在配置的注册表中。

Docker对象

在使用Docker时,您使用镜像、容器、卷、网络等对象。

镜像

Docker镜像是只读模板,其中包含创建Docker容器的指令。可以从Docker Hub上获取Docker镜像并使用,或者您可以向基本镜像添加其他指令来创建新的和修改过的Docker镜像。您还可以使用dockerfile创建自己的Docker镜像。创建一个包含创建容器和运行容器的所有指令的Dockerfile,它将创建您的自定义Docker镜像。

Docker镜像有一个基本层是只读的,顶层可以被写入。当您编辑一个Dockerfile并重新构建它时,只有修改的部分会在顶层重新构建。

容器

在运行Docker镜像后,它会创建一个Docker容器。所有应用程序及其环境都在此容器内运行。您可以使用Docker API或CLI来启动、停止、删除Docker容器。

以下是运行一个ubuntu Docker容器的示例命令:

docker run -i -t ubuntu /bin/bash

Docker生成的持久化数据,并且由Docker容器使用的数据存储在卷中。Docker完全通过Docker CLI或Docker API管理卷。卷可在Windows和Linux容器上工作。与将数据持久化在容器的可写层中相比,使用卷始终是一个不错的选择。卷的内容存在于容器的生命周期之外,因此使用卷不会增加容器的大小。

您可以使用-v或-mount标志以卷的方式启动容器。在此示例命令中,您正在使用geekvolume卷与yaoweibin容器。

docker run -d --name yaoweibin  -v geekvolume:/app nginx:latest

网络

Docker网络是所有隔离容器之间通信的通道。 Docker中有五种主要的网络驱动程序:

  1. 桥接:这是容器的默认网络驱动程序。当您的应用程序在独立容器上运行时,即多个容器与同一Docker主机通信时,使用此网络。
  2. 主机:此驱动程序消除了Docker容器和Docker主机之间的网络隔离。当您不需要主机和容器之间的任何网络隔离时使用。
  3. 覆盖:此网络使Swarm服务能够相互通信。当容器在不同的Docker主机上运行时,或者当Swarm服务由多个应用程序组成时,使用此网络。
  4. :此驱动程序禁用所有网络。
  5. macvlan:此驱动程序为容器分配mac地址,使它们看起来像物理设备。通过它们的mac地址在容器之间路由流量。当您希望容器看起来像物理设备时使用此网络,例如在迁移VM设置时。

结论

我希望这让您对Docker架构及其基本组件有所了解。在Docker周围导航以了解更多信息,并且如果有兴趣进行实践培训,可以查看此链接_4。

类似文章