Docker架构详解:完整的Docker介绍

当谈到容器时,我们大多数人都期待Docker,对吧?至少在这一点上似乎没有矛盾。尽管容器不是虚拟机的替代品,但公司已经开始以这种方式利用它。Docker采用客户端-服务器架构。在这篇博客中,将介绍有关Docker架构详解的所有内容。

什么是容器?
容器是一个逻辑盒子中的软件包,其中包含应用程序运行所需的一切。其中包括操作系统、应用程序代码、运行时、系统工具、系统库等。Docker容器是基于Docker镜像构建的。由于镜像是只读的,Docker在镜像的只读文件系统上添加了一个读写文件系统来创建容器。

容器与虚拟机 (VM) 进行比较。VM 是运行在主机操作系统之上的来宾操作系统,例如Linux或Windows,可对底层硬件进行虚拟化访问。容器允许您将应用程序与库和其他依赖项打包在一起,为运行软件服务提供隔离的环境。

什么是Docker?
Docker 是一个基于Linux容器的开源平台,用于在容器内开发和运行应用程序。Docker用于在给定主机上同时部署许多容器。容器非常快速且轻量级,因为它们直接在主机内核中运行,因此不需要虚拟机管理程序的额外负载。

Docker架构和组件
Docker 使用客户端-服务器架构。Docker客户端与Docker守护进程通信,该守护进程用于构建、运行和分发Docker容器。Docker客户端和守护进程使用 REST API、UNIX 套接字或网络接口进行通信。

Docker架构详解

Docker架构中有五个主要组件:

  • a) Docker Daemon监听 Docker API 请求并管理 Docker 对象,例如镜像、容器、网络和卷。
  • b) Docker Clients: 借助Docker Clients , 用户可以与Docker进行交互。Docker 客户端提供命令行界面 (CLI),允许用户运行和停止 Docker 守护进程的应用程序命令。
  • c) Docker Host 提供了完整的环境来执行和运行应用程序。它由 Docker 守护进程、镜像、容器、网络和存储组成。
  • d) Docker Registry 存储 Docker 镜像。Docker Hub 是任何人都可以使用的公共注册表,并且 Docker 默认配置为使用 Docker Hub 上的映像。您可以在其上运行您自己的注册表。
  • e) Docker 镜像是您根据 Dockerfile 中编写的一组指令构建的只读模板。映像定义了您希望打包的应用程序及其依赖项看起来像启动时要运行的进程。

容器内的资源隔离(Docker)

  • a) 命名空间提供一层隔离。命名空间限制了您可以看到的内容。当我们运行容器时,Docker 会为该容器创建一组命名空间。有不同类型的命名空间pid、net、mnt、uts、ipc。
  • b) 控制组将应用程序限制为一组特定的资源。它限制了您可以使用的资源量。这允许 Docker 引擎向容器共享可用的硬件资源,并可选择强制执行限制和约束。
  • c)通过创建层来操作的 联合文件系统,Docker 镜像由相互分层的文件系统组成,使其非常轻量且快速。
    如果您没有 UnionFS,则 200MB 的映像会运行 5 次,因为 5 个单独的容器意味着 1GB 的磁盘空间。

Docker引擎组件
Docker引擎是Docker的一部分,它创建并运行Docker容器。Docker Engine是Docker运行的层。它安装在主机上。它是一个轻量级的运行时和工具,用于管理容器、图像、构建等。

Docker引擎组件

Docker Engine中包含三个组件:

  • a) 服务器:它是名为dockerd的 docker 守护进程 。它可以创建和管理docker镜像,即容器、网络。
  • b) Rest API:用于指示 docker 守护进程做什么。
  • c) 命令行界面(CLI):它是用于输入docker命令的客户端。

Docker网络和Docker存储

Docker网络和Docker存储


Docker中的网络是 docker 的一部分,用于将docker容器相互连接以及与外部世界连接,以便它们可以相互通信,也可以与Docker 主机通信。您可以将 docker 容器连接到非 Docker工作负载。Docker 使用 容器网络模型(CNM)进行网络连接。

Docker 存储:默认情况下,容器内创建的所有文件都存储在可写容器层上,因此当该容器不再存在时,数据不会保留。Docker 有两个选项让容器在主机中存储文件,以便即使在容器停止后文件也能保留:volumes和 bind mounts。

Docker容器生命周期管理

Docker容器生命周期管理

创建容器时有不同的阶段,称为容器的生命周期,即创建、运行、暂停、删除和停止。

  • 第一阶段是创建状态。此外,当我们使用Docker run命令时,容器会进入运行状态。
  • 我们可以使用Docker stop/pause命令来停止或暂停容器。而且,要将容器从停止状态恢复到运行状态,我们使用Docker run命令。
  • 我们可以使用Docker rm命令删除正在运行或已停止的容器。

转载请注明出处:https://www.cloudnative-tech.com/uncategorized/5886.html

(1)
上一篇 2023年8月4日 下午6:47
下一篇 2023年9月1日 上午11:23

相关推荐

  • 容器镜像仓库渗透原理是什么?

    本文将深入探讨容器镜像仓库的渗透原理,以帮助读者了解容器镜像仓库面临的潜在安全风险和威胁。我们将介绍一些常见的容器镜像仓库渗透技术和攻击方式,并提供相应的防御策略和最佳实践,以确保容器镜像仓库的安全性和可靠性。

    2023年5月29日
    0
  • 云容器和云主机的区别

    云容器和云主机是两种不同的虚拟化技术,它们在应用程序的部署、管理和资源利用等方面存在一些区别。下面我们将详细介绍云容器和云主机的区别。

    2023年6月27日
    0
  • 容器云是什么技术?

    容器云是一种基于容器技术的云计算平台,可以帮助用户快速部署、管理和扩展应用程序。本文将详细介绍容器云的技术原理、优点和应用场景。

    2023年5月24日
    0
  • 容器化部署的好处有哪些?

    容器化部署是将应用程序及其所有依赖项打包成容器的过程,并使用容器管理平台部署和运行这些容器。容器化部署有许多好处,如下所述:

    2023年5月30日
    0
  • 应用程序现代化架构及治理方案

    应用程序现代化架构和治理方案是为了满足现代应用开发和部署的需求,提高应用的可伸缩性、可靠性和可管理性。下面介绍一些常见的应用程序现代化架构和治理方案。

    2023年5月25日
    0