Docker 的简介

Docker 的简介

  • 为什么会有 Docker
    • 环境一致性问题
    • 提高资源利用率和可移植性
    • 快速部署和伸缩
    • 简化管理和维护
    • 版本控制和回滚
  • Docker 的历史
    • dotCloud 时代(2010年前)
    • Docker 诞生(2010-2013)
    • 快速发展与开源(2013-2014)
    • 容器编排与生态扩展(2014-2016)
    • 商业化和市场竞争(2016-至今)
  • Docker 和 VMware 的 区别
    • 虚拟化层次
    • 资源利用率
    • 启动和停止速度
    • 隔离性
    • 跨平台性
    • 管理和维护
  • Docker 的主要特点和优势
  • Docker 的适用场景
    • 应用程序开发与测试
    • 微服务架构
    • 持续集成/持续部署(CI/CD)
    • 云计算与虚拟化
    • 数据分析与机器学习
    • 临时任务与批处理作业
    • 安全性与隔离
  • DevOps 简介
    • 定义与背景
    • 核心特点
    • 主要优势
    • 实施要点
    • 应用场景
  • Docker 官网

在这里插入图片描述

Docker是一个开源的应用容器引擎,它基于Go语言并遵从Apache2.0协议开源。Docker允许开发者将应用及其依赖包打包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口,几乎没有任何性能开销,可以很容易地在机器和数据中心中运行。

为什么会有 Docker

Docker 的出现主要是为了解决传统软件开发和部署过程中遇到的一系列挑战,其诞生和发展背后有着多方面的原因

环境一致性问题

  1. 开发环境与生产环境差异:在软件开发过程中,开发人员在开发环境中编写的代码,在测试和生产环境中可能会因为环境配置的不同而出现问题。Docker 通过将应用程序及其依赖项打包到容器中,确保了在不同环境中运行的一致性,减少了因环境差异导致的问题。

  2. 复杂环境配置:传统的应用部署需要手动配置各种环境参数和依赖项,这不仅费时费力,还容易出现错误。Docker 通过镜像的方式,将应用及其环境封装成一个独立的单元,简化了部署过程。

提高资源利用率和可移植性

  1. 轻量级容器:Docker 容器相比于传统的虚拟机更为轻量级,因为它们共享宿主机的内核,无需额外的虚拟化开销。这使得在同一台物理服务器上可以运行更多的容器,提高了资源利用率。

  2. 跨平台部署:Docker 容器可以在不同的操作系统和云平台上无缝运行,这意味着开发者可以将应用程序部署到任何支持 Docker 的环境中,而无需担心兼容性问题。

快速部署和伸缩

  1. 快速启动和停止:Docker 容器可以在几秒内启动和停止,相比传统的虚拟机启动时间大大缩短。这对于需要快速部署和伸缩的应用场景非常有用。

  2. 批量部署:在集群环境中,Docker 可以轻松实现批量部署,满足业务访问的需求。当需求发生扩充时,可以通过增加容器的数量来快速扩展服务能力。

简化管理和维护

  1. 命令行工具:Docker 提供了一套简单而强大的命令行工具,使得容器的管理变得简单快捷。

  2. 编排工具:随着 Docker 的发展,出现了多种容器编排工具(如 Docker Compose、Kubernetes 等),这些工具可以帮助开发者和运维人员更轻松地管理容器化应用程序的生命周期。

版本控制和回滚

Docker 允许将应用程序及其依赖项打包成镜像,并存储在 Docker 仓库中。这些镜像可以版本化,使得开发者可以轻松地跟踪应用程序的演进和回滚到以前的版本。

综上所述,Docker 的出现是为了解决传统软件开发和部署过程中的环境一致性问题、提高资源利用率和可移植性、实现快速部署和伸缩、简化管理和维护以及提供版本控制和回滚的能力。这些特点使得 Docker 成为现代软件开发和部署的重要工具之一。

Docker 的历史

Docker 的历史可以追溯到其前身 dotCloud 平台,并经历了从内部项目到开源软件,再到全球广泛应用的过程。以下是 Docker 的主要发展历程:

dotCloud 时代(2010年前)

  • dotCloud 平台:Docker 的创始人 Solomon Hykes 在 2010 年之前开发了一个名为 dotCloud 的平台,旨在提供一种简化的方式来构建和部署应用程序。然而,在开发过程中,他遇到了如何快速、可靠地部署应用程序的挑战。

Docker 诞生(2010-2013)

  • Docker 项目的孵化:在 dotCloud 内部,Hykes 和他的团队开始着手开发一个容器化工具,即 Docker 的前身。他们希望通过这个工具来简化应用程序的打包、部署和管理过程。
  • 首次公开介绍:2013 年 3 月,在 PyCon 大会上,Solomon Hykes 首次公开介绍了 Docker 这一产品。Docker 的创新式镜像格式以及容器运行时迅速成为社区、客户和更广泛行业的实际标准和基石。
  • Docker 0.1.0 版本发布:同年 3 月 20 日,dotCloud 发布了 Docker 的首个版本,并将 Docker 源码进行开源。

快速发展与开源(2013-2014)

  • 主流云厂商支持:随着 Docker 技术的开源,红帽公司、谷歌、亚马逊以及 DigitalOcean 等主流云厂商迅速在其云服务平台上提供了 Docker 的支持,这加速了 Docker 的发展进度。
  • Docker 1.0 版本发布:2014 年 6 月的 DockerCon 大会上,Docker 正式发布了 Docker 1.0 版本,标志着 Docker 的稳定性和可靠性已经基本满足了生产环境的运行需求。同时,Docker Hub 镜像仓库也同步发布,已有超过 14,000 个 Docker 化的应用存储在公共仓库中。

容器编排与生态扩展(2014-2016)

  • Docker Swarm 和 Docker Machine 发布:2014 年 12 月的 DockerConEU 大会上,Docker Swarm(Docker 集群管理工具)和 Docker Machine(部署 Docker 主机的命令工具)同时面世。
  • 容器编排工具的出现:随着容器技术的普及,容器编排工具成为焦点。Google 在 2014 年 6 月发布了 Kubernetes,为容器编排领域带来了新的竞争格局。
  • OCI 和 CNCF 成立:为了建立软件容器的通用标准,2015 年 6 月由 Docker、IBM、微软、红帽及 Google 等厂商所组成的开放容器项目(OCP)联盟成立,该项目在 Linux 基金会下运作,并更名为开放容器倡议(OCI)。同时,云原生计算基金会(CNCF)成立,Kubernetes 成为其事实标准。
  • Docker 捐献 containerd:2016 年,Docker 将 containerd 独立拆分,并将其捐赠给了社区,以推动容器技术的标准化和开放化。

商业化和市场竞争(2016-至今)

  • Docker 商业版发布:Docker 将自身拆分为 Docker-CE(免费版)和 Docker-EE(商业版),以满足不同用户的需求。
  • 面对竞争:尽管 Docker 在容器化领域取得了显著成就,但它也面临着来自 Kubernetes 和其他容器服务(如 AWS、Azure、Google Cloud 的容器服务)的竞争压力。
  • 未来趋势:随着容器技术的不断发展,Docker 需要更加注重安全性和稳定性,加强与云原生生态的整合,以及支持多种架构和平台,以继续推动容器技术的发展。

总的来说,Docker 的历史是一部从内部项目到开源软件,再到全球广泛应用的创新历程。它凭借轻量级、可移植、易于管理等优势,成为了现代软件开发和部署的重要工具之一。

Docker 和 VMware 的 区别

Docker 和 VMware 是两种不同的虚拟化技术,它们在多个方面存在显著的差异。

虚拟化层次

  • Docker:Docker 是一种轻量级的容器化技术,它基于操作系统级别的虚拟化。Docker 容器与宿主机共享同一个内核,因此不需要模拟完整的硬件环境,这使得 Docker 容器更加轻量、快速和高效。
  • VMware:VMware 是一种完全虚拟化技术,它通过虚拟化软件将物理机分割成多个虚拟机(VM)。每个虚拟机都拥有自己独立的操作系统、应用程序和硬件资源,就像在一台独立的物理机上运行一样。

资源利用率

  • Docker:由于 Docker 容器共享宿主机的内核,因此它们对硬件资源的利用率更高。通常,Docker 对硬件的利用率可以达到 60%-80% 左右,这使得 Docker 非常适合在资源受限的环境中运行。
  • VMware:VMware 虚拟机需要运行完整的操作系统和硬件模拟,因此资源占用相对较高。其硬件利用率大约在 30% 左右,这在一定程度上限制了它在资源密集型应用中的使用。

启动和停止速度

  • Docker:Docker 容器的启动和停止速度非常快,通常可以在几秒钟内完成。这是因为 Docker 容器不需要启动完整的操作系统,只需加载必要的镜像和配置即可。
  • VMware:VMware 虚拟机的启动和停止速度相对较慢,因为它们需要启动完整的操作系统和进行硬件模拟。这可能导致在需要快速响应的场景中,VMware 的表现不如 Docker。

隔离性

  • Docker:Docker 容器提供了良好的隔离性,每个容器都运行在自己的命名空间中,互不影响。然而,由于它们共享宿主机的内核,因此在某些情况下可能存在安全风险。
  • VMware:VMware 虚拟机提供了更高级别的隔离性,因为它们拥有自己独立的操作系统和硬件资源。这使得 VMware 虚拟机在需要高安全性保障的场景中更具优势。

跨平台性

  • Docker:Docker 容器可以在任何支持 Docker 的平台上运行,无论是物理机、虚拟机还是云环境。这种跨平台的兼容性极大地简化了应用程序的部署和迁移过程。
  • VMware:VMware 虚拟机也可以在不同的操作系统和硬件平台上运行,但通常需要特定的虚拟化软件支持。此外,VMware 虚拟机的迁移和备份可能需要额外的工具和步骤。

管理和维护

  • Docker:Docker 提供了一套强大的管理和维护工具,如 Docker Compose、Docker Swarm 和 Kubernetes 等,可以方便地管理和监控容器。此外,Docker 镜像的分层存储和增量更新机制也简化了镜像的管理和分发过程。
  • VMware:VMware 也提供了丰富的管理工具和功能,如 vSphere、vCenter 等,用于管理和维护虚拟机。然而,对于大规模的虚拟化环境来说,VMware 的管理和维护可能会更加复杂和耗时。

综上所述,Docker 和 VMware 在虚拟化层次、资源利用率、启动和停止速度、隔离性、跨平台性以及管理和维护等方面都存在显著的差异。在选择使用哪种虚拟化技术时,需要根据具体的应用场景和需求进行权衡和选择。

Docker 的主要特点和优势

  1. 轻量级和可移植:Docker 容器使用宿主机的内核,无需额外的虚拟化开销,使得它们非常轻量级和高效。此外,由于它们运行在抽象层而非硬件或操作系统层,Docker 容器几乎可以在任何环境中运行,这增加了应用程序的可移植性。

  2. 一致的环境:通过封装应用程序及其所有依赖项,Docker 确保了开发、测试和生产环境之间的一致性。这减少了所谓的“在我的机器上运行正常”的问题。

  3. 易于管理和部署:Docker 容器可以被视为轻量级的虚拟机,但它们的启动和停止速度要快得多。此外,Docker 提供了命令行工具以及 API,便于对容器进行管理和部署。

  4. 版本控制和可重现性:通过使用 Dockerfile(一个文本文件,包含了一系列命令来组装一个镜像),可以很容易地记录和跟踪容器镜像的更改。这确保了容器镜像的可重现性,并且有助于团队合作和自动化部署。

  5. 微服务架构的支持:Docker 的容器化技术非常适合于微服务架构,其中应用程序被分解成多个小的、独立的、可扩展的服务。每个服务都可以运行在自己的容器中,通过 Docker 的网络功能相互通信。

  6. 广泛的社区支持:Docker 拥有一个庞大的用户和开发者社区,这意味着你可以很容易地找到支持、教程和第三方工具,来帮助你更好地使用 Docker。

Docker 的适用场景

Docker 因其独特的容器化技术,适用于多种场景,以下是一些典型的应用场景:

应用程序开发与测试

  • 开发环境一致性:Docker 容器可以确保开发、测试和生产环境之间的一致性,减少因环境差异导致的问题。
  • 快速部署:开发人员可以快速构建和部署应用程序的容器版本,以便进行测试和调试。
  • 隔离性:每个容器都运行在独立的沙箱环境中,互不影响,这有助于在开发过程中隔离不同的应用程序或服务。

微服务架构

  • 微服务部署:Docker 非常适合用于部署微服务架构的应用程序。每个微服务都可以运行在自己的容器中,通过 Docker 的网络功能相互通信。
  • 可扩展性:随着业务需求的增长,可以轻松地增加或减少微服务的容器数量,以实现水平扩展或缩减。

持续集成/持续部署(CI/CD)

  • 自动化构建与部署:Docker 可以与 CI/CD 流程集成,实现自动化构建、测试和部署。当代码提交到版本控制系统时,CI/CD 管道可以自动构建 Docker 镜像,并将其部署到测试或生产环境中。
  • 环境一致性:在 CI/CD 流程中使用 Docker 可以确保每个构建和部署步骤都在相同的环境中执行,从而提高构建和部署的可靠性。

云计算与虚拟化

  • 轻量级虚拟化:Docker 容器比传统的虚拟机更轻量级,因为它们共享宿主机的内核,无需额外的虚拟化开销。这使得 Docker 成为云计算和虚拟化环境中的理想选择。
  • 多云和混合云部署:Docker 容器可以在不同的云平台和操作系统上无缝运行,支持多云和混合云部署策略。

数据分析与机器学习

  • 数据科学环境:Docker 可以用于创建可重复的数据科学环境,包含特定的库、框架和工具。这有助于数据科学家在团队中共享和协作。
  • 机器学习模型部署:Docker 容器可以用于部署机器学习模型,确保模型在不同环境中的一致性和可移植性。

临时任务与批处理作业

  • 快速启动与清理:对于需要快速启动和清理的临时任务或批处理作业,Docker 容器提供了一种便捷的方式。容器可以在任务完成后立即停止并删除,不会留下任何残留物。

安全性与隔离

  • 安全隔离:Docker 容器提供了进程级别的隔离,有助于保护应用程序免受外部威胁和恶意软件的攻击。
  • 最小权限原则:通过限制容器内的权限和访问范围,可以遵循最小权限原则,降低安全风险。

综上所述,Docker 因其轻量级、可移植性、隔离性和自动化特性,在多种场景中都有着广泛的应用。无论是开发测试、微服务架构、CI/CD 流程、云计算虚拟化、数据分析机器学习还是临时任务批处理作业等领域,Docker 都能提供有效的解决方案。

DevOps 简介

DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,旨在促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。DevOps强调通过自动化“软件交付”和“架构变更”的流程,来使构建、测试、发布软件更加快捷、频繁和可靠。

定义与背景

  • 定义:DevOps是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。
  • 背景:随着软件行业的快速发展,为了按时交付软件产品和服务,开发和运维工作必须紧密合作。DevOps的引入旨在填补开发端和运维端之间的信息鸿沟,改善团队之间的协作关系。

核心特点

  1. 自动化:DevOps强调通过自动化流程来优化软件开发、测试、部署和运维等各个环节,提高效率和可靠性。
  2. 持续集成(CI)与持续部署(CD):DevOps以CI/CD为基础,实现代码的频繁集成和部署,确保软件能够快速迭代和更新。
  3. 团队协作:DevOps要求开发、运维和测试等团队之间紧密协作,共同推动软件产品的交付。

主要优势

  1. 提高交付速度:通过自动化和持续集成/部署,DevOps能够显著缩短软件交付周期,提高交付速度。
  2. 提升软件质量:自动化的测试和部署流程有助于及早发现和修复问题,提升软件质量。
  3. 增强团队协作:DevOps促进了开发、运维和测试等团队之间的沟通和协作,增强了团队的整体效能。
  4. 降低运维成本:通过自动化运维和减少人为错误,DevOps有助于降低运维成本。

实施要点

  1. 文化变革:DevOps不仅仅是一系列技术和工具的组合,更是一种文化和组织方式的变革。企业需要建立一种鼓励沟通、协作和持续改进的文化氛围。
  2. 工具链打通:DevOps需要打通从开发到运维的整个工具链,确保各个团队能够高效协同工作。这包括代码管理、构建工具、自动部署、持续集成、配置管理、容器、编排、服务注册与发现等多种工具。
  3. 流程优化:DevOps要求企业优化现有的软件开发和运维流程,确保流程的高效性和可重复性。

应用场景

DevOps适用于需要频繁交付软件产品和服务的各种行业和组织。特别是那些对软件交付速度、质量和成本有较高要求的行业,如互联网、金融、电信等。

总之,DevOps是一种旨在促进开发、运维和测试等团队之间沟通、协作与整合的方法论和实践。通过自动化流程和持续集成/部署等手段,DevOps能够显著提高软件交付速度和质量,降低运维成本,并推动企业的数字化转型和创新。

Docker 官网

  • 官网:http://www.docker.com
  • 安装 docker 镜像的仓库:https://hub.docker.com。

Docker官网提供了丰富的文档、教程和社区资源,帮助用户快速上手Docker,并了解Docker的最新动态和最佳实践。此外,Docker还提供了Docker Hub这一集中存放镜像文件的场所,用户可以在Docker Hub上查找、下载和分享自己的镜像。

总之,Docker官网是了解Docker技术、获取Docker资源和参与Docker社区的重要平台。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/52545.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

车载通信框架--- 以太网重连Port口相关思考

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…

手机mkv转换mp4:轻松实现视频格式兼容

如今手机已成为我们日常生活中不可或缺的伴侣,而视频文件则是我们享受娱乐、获取信息的重要来源。然而,由于不同设备和平台对视频格式的支持各有不同,我们有时会遇到无法在手机上播放某些视频文件的问题。 mkv是一种常见的视频格式&#xff…

java接口 controller层接收list集合传参,postman 调用接口时required parameter XXX is not present

开发过程中开发一个java接口 controller层接收list集合传参,然后postman调用一直不成功,报错 使用RequestParam方式,如果postman 调用接口时报错required parameter XXX is not present 可能是(value“items”)跟你输…

A Neural Probabilistic Language Model

摘要 统计语言建模的一个目标是学习单词序列的联合概率函数。由于维度的诅咒,这在本质上是困难的:我们建议用它自己的武器来对抗它。在提出的方法中,人们同时学习(1)每个单词的分布式表示(词向量)(即单词之间的相似性)以及(2)表示…

在进行网站链接时,‌加上http或https的重要性不言而喻

这一简单的操作背后,‌蕴含着对搜索引擎优化(‌SEO)‌的深刻理解,‌以及对网站权重提升的精准把握。‌以下,‌我们将深入探讨这一话题,‌以期为您的网站优化提供有价值的参考。‌优化(‌SEO&…

C/C++控制台贪吃蛇游戏的实现

🚀欢迎互三👉:程序猿方梓燚 💎💎 🚀关注博主,后期持续更新系列文章 🚀如果有错误感谢请大家批评指出,及时修改 🚀感谢大家点赞👍收藏⭐评论✍ 一、…

数据可视化大屏模板-美化图表

Axure作为一款强大的原型设计软件,不仅擅长构建交互式界面,更在数据可视化方面展现出了非凡的创意与实用性。今天,就让我们一起探索Axure设计的几款精美数据可视化大屏模板,感受数据之美。 立体图表的视觉冲击力 Axure的数据可视…

银河麒麟桌面操作系统V10:如何设置应用开机自启动?

银河麒麟桌面操作系统V10:如何设置应用开机自启动? 1、图形界面设置2、命令行设置3、注意 💖The Begin💖点点关注,收藏不迷路💖 1、图形界面设置 打开“设置”->“系统”->“开机启动”。点击“添加…

5000套精美PPT免费分享

目录 部分展示目录 几乎包含各种应用场景的PPT模板 这里只展示部分目录 部分展示目录 ##PPT下载 链接:https://pan.baidu.com/s/1ckvN9xeMR82hL30lHXfJ0g 提取码:ZYNB 点击下载,记得点个赞哦

ELK进阶-安全认证设置流程介绍

目录 一、前言 二、ElasticSearch的安全认证配置 设置ElasticSearch的安全认证功能(最低) 启用TLS/SSL加密通信 (1)生成CA证书 (2)生成transport证书 (3)生成http证书 &#…

docker镜像,ip,端口映射,持久化

docker 镜像的迁移:导出和导入镜像 查看镜像: [rootdocker ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos latest 5d0da3dc9764 2 years ago 231MB 打包 将镜像打包,找到save,可以将…

【非常困难】 猿人学web第一届 第10题 js 混淆 - 重放攻击对抗

文章目录 调试干扰第一个 debuggerHook 代码 第二个 debuggerHook 代码 第三个 Function.constructor.prototype 检测Hook 代码 完整的 Hook 代码 接口分析加密参数 m 生成位置加密参数还原加密点扣代码提示_yrxyA\$()var _yrxmEu _yrxWKg(_yrxyHJ...._yrxWKg() let result _…

半枚玄月照见人间空荡荡

半枚玄月照见人间空荡荡 昨夜玄月昨夜风,轻吹往事落心中。 众里寻他为何事?鸡鸣月落一场空。玄月 沙发上刷短视频笑得不经意抬头,忽而瞥见窗口防盗网挂着半枚月亮,玄黄色的,温润而冷冽,引人注目。 手机里…

国货之光|暴雨机推出面向大模型训练的AI服务器

当前,“百模大战”带来了算力需求的爆发,尤其是以ChatGPT为代表的多模态AI大模型,‌其参数规模和训练数据量均达到了前所未有的规模。‌GPT-3.5、‌GPT-4等模型的参数规模突破了万亿级别,‌训练数据量达到了TB级别,‌这…

zdppy+vue3+onlyoffice文档管理系统实战 20240823上课笔记 zdppy_cache框架的低代码实现

遗留问题 1、封装API2、有账号密码3、查询所有有效的具体数据,也就是缓存的所有字段 封装查询所有有效具体数据的方法 基本封装 def get_all(self, is_activeTrue, limit100000):"""遍历数据库中所有的key,默认查询所有没过期的:para…

51单片机——LED灯控制

1、LED介绍 中文名:发光二极管 外文名:Light Emitting Diode 简称:LED 用途:照明、广告灯、指引灯、屏幕 2、LED原理图 电阻在原理图上标注为1k,表示这是1千欧的电阻,实际在电路板上的表示是102 102解…

Godot《躲避小兵》实战之创建游戏主场景

游戏主场景 现在是时候将我们所做的一切整合到一个可玩的游戏场景中了。 创建新场景并添加一个 Node节点,命名为 Main。(我们之所以使用 Node 而不是 Node2D,是因为这个节点会作为处理游戏逻辑的容器使用。本身是不需要 2D 功能的。&#x…

C\C++ Sqlite3使用详解

C\C++ Sqlite3使用详解 一、源码下载二、sqlite3接口说明C++2.1 项目创建以及sqlite3使用2.1 连接数据库2.2 sqlite创建表2.2.1 示例代码2.2.2 注意事项2.3 sqlite插入数据2.3.1 示例代码2.3.2 注意事项2.4 sqlite数据删除2.5 sqlite数据查询一、源码下载 下载地址: https://…

oneapi 获取通义千问模型密钥

1、打开 阿里云百炼大模型平台,点击开通,登录账号 2、获取密钥 3、查看模型名称,可以添加到 oneapi 的渠道中 别忘了添加向量模型

python库(21):

1 TextBlob简介 TextBlob 是一个基于 Python 的文本处理库,能够让基础的自然语言处理任务变得异常简单。 它提供了一个简单直观的 API,让你能够轻松执行词性标注、名词短语提取、情感分析、文本分类和关键词提取等功能。 值得一提的是,Tex…