Docker架构及入门组件

Docker架构及入门组件

技术开发 编程 技术框架 技术发展

 

Docker架构及入门组件

传统与新一代虚拟化

早些时候,我们曾经创建虚拟机,每个虚拟机都有一个占用大量空间并使其繁重的操作系统。

现在在docker容器的情况下,您有一个操作系统,并且容器之间共享资源。因此它重量轻,可以在几秒钟内启动。

传统与新一代

Docker架构

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

Docker架构

让我向您解释一个docker架构的组件。

Docker引擎

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

  • 服务器:这是名为dockerd的docker守护进程它可以创建和管理泊坞窗图像。集装箱,网络等

  • Rest API:用于指示docker守护进程做什么。

  • 命令行界面(CLI):它是一个用于输入docker命令的客户端

Docker客户端

Docker用户可以通过客户端与Docker进行交互。当任何docker命令运行时,客户端将它们发送到dockerd守护程序,该守护程序执行它们。Docker API使用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标志来启动具有卷的容器。在此示例命令中,您正在使用带geekflare容器的geekvolume卷。

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

网络

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

  1. Bridge:它是容器的默认网络驱动程序。当您的应用程序在独立容器上运行时,即使用与同一个docker主机通信的多个容器,您可以使用此网络。

  2. 主机:此驱动程序删除docker容器和docker主机之间的网络隔离。当您不需要在主机和容器之间进行任何网络隔离时,可以使用它。

  3. 覆盖:该网络使群组服务能够相互通信。当容器在不同的Docker主机上运行或者由多个应用程序组成swarm服务时使用它。

  4. :此驱动程序禁用所有网络。

  5. macvlan:这个驱动程序为容器分配mac地址,使它们看起来像物理设备。流量通过其mac地址在容器之间路由。当您希望容器看起来像物理设备时(例如,在迁移VM设置时),将使用此网络。

技术开发 编程 技术框架 技术发展