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

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

相关推荐

  • 解读云原生技术的内涵和特点

    随着云计算技术的不断发展,云原生技术逐渐成为了业界热门话题。那么,什么是云原生技术?云原生技术有哪些特点和内涵?本文将从多个角度探讨云原生技术的内涵和特点,帮助读者更好地了解和掌握这一技术。

    2023年5月29日
    0
  • 承载核心业务是什么?

    承载核心业务是指企业或组织所专注、主要从事的关键业务活动,是支撑企业发展和实现竞争优势的重要组成部分。这些核心业务通常与企业的战略目标紧密相关,对企业的长期发展和盈利能力具有重要影响。

    2023年5月12日
    0
  • 跨境企业首选云计算平台:亚马逊云科技香港数据中心赋能全球业务

    在经济全球化与数字化深度融合的今天,企业出海已成为不可逆转的潮流。然而跨境业务拓展常面临网络延迟、数据合规、运维成本三大核心痛点。香港作为国际金融枢纽,凭借其独特的区位优势,正成为亚太地区企业数字化转型的战略要地。本文将深度解析亚马云科技云服务商的香港节点如何为跨境企业打造安全高效的数字化引擎。 1. 全球化布局的黄金节点 亚马逊科技香港数据中心采用BGP多…

    2025年6月5日
    0
  • 金融云原生应用场景有哪些

    金融行业是一个信息密集、复杂而高风险的行业,云原生技术的应用可以在金融领域带来许多价值和应用场景。以下是金融云原生应用的一些常见场景:

    2023年6月19日
    0
  • 如何搭建云原生平台?

    本文将从云原生平台的概念、特点和应用场景等方面介绍云原生平台是什么意思,并探讨云原生平台的发展趋势和前景。

    2023年5月29日
    0