Docker架构及其初学者组件

本文概述

  • 传统与新一代虚拟化
  • Docker架构
让我们熟悉Docker架构及其基本组件。
我假设你对Docker有基本的了解。如果没有, 你可以参考上一篇文章。
了解Docker入门-容器技术
我相信你了解Docker在DevOps中的重要性。现在, 在这个出色工具的背后, 必须有一个令人惊奇的, 经过深思熟虑的架构。是不是
但是在我谈论这个之前, 让我展示一下以前和当前的虚拟化系统。
传统与新一代虚拟化 之前, 我们曾经创建虚拟机, 每个VM都有一个OS, 该OS占用了大量空间并使其沉重。
现在, 在docker容器的情况下, 你只有一个操作系统, 并且资源在容器之间共享。因此, 它很轻巧, 只需几秒钟即可启动。
Docker架构及其初学者组件

文章图片
Docker架构 下面是Docker架构的简单示意图。
Docker架构及其初学者组件

文章图片
让我向你解释docker架构的组件。
Docker引擎
它是整个Docker系统的核心部分。 Docker Engine是遵循客户端-服务器架构的应用程序。它已安装在主机上。 Docker Engine中包含三个组件:
  • 服务器:这是名为dockerd的docker守护程序。它可以创建和管理Docker映像。容器, 网络等
  • REST API:用于指示docker守护程序做什么。
  • 命令行界面(CLI):这是一个用于输入docker命令的客户端。
Docker客户端
Docker用户可以通过客户端与Docker进行交互。当任何docker命令运行时, 客户端会将它们发送到dockerd守护程序, 该守护程序将其执行。 Docker命令使用Docker API。 Docker客户端可以与多个守护程序通信。
Docker注册表
它是存储Docker映像的位置。它可以是公共docker注册表或私有docker注册表。 Docker Hub是Docker映像(其商店的公共注册表)的默认位置。你还可以创建并运行自己的私有注册表。
当你执行docker pull或docker run命令时, 将从配置的注册表中提取所需的docker映像。当你执行docker push命令时, docker映像将存储在配置的注册表中。
Docker对象
在使用Docker时, 你将使用映像, 容器, 卷, 网络;所有这些都是Docker对象。
图片 Docker映像是只读模板, 其中包含创建Docker容器的说明。可以从Docker集线器中提取并使用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容器使用的持久数据存储在Volumes中。它们完全由Docker通过Docker CLI或Docker API进行管理。卷在Windows和Linux容器上均可工作。与其将数据保留在容器的可写层中, 不如将其用作卷始终是一个不错的选择。卷的内容不在容器的生命周期内, 因此使用卷不会增加容器的大小。
你可以使用-v或–mount标志来启动具有卷的容器。在此示例命令中, 你将geekvolume体积与geekflare容器一起使用。
docker run -d --name geekflare  -v geekvolume:/app nginx:latest

网路 【Docker架构及其初学者组件】Docker网络是所有隔离容器进行通信的通道。 docker中主要有五个网络驱动程序:
  1. 网桥:它是容器的默认网络驱动程序。当你的应用程序在独立容器上运行时(即多个容器与同一docker主机通信), 你可以使用此网络。
  2. 主机:此驱动程序消除了Docker容器与Docker主机之间的网络隔离。当你不需要主机和容器之间的网络隔离时使用。
  3. 覆盖:此网络使群集服务可以相互通信。当容器在不同的Docker主机上运行时, 或者由多个应用程序组成集群服务时, 将使用它。
  4. 无:此驱动程序禁用所有网络。
  5. macvlan:此驱动程序将mac地址分配给容器, 以使其看起来像物理设备。流量通过容器的mac地址在容器之间路由。例如, 当你希望容器在迁移VM设置时看起来像物理设备时, 可以使用此网络。
总结
我希望这会让你对Docker架构及其基本组件有所了解。浏览Docker以了解更多信息, 如果有兴趣获得动手培训, 请查看此Docker Mastery课程。

    推荐阅读