Docker学习路线2:底层技术

这篇具有很好参考价值的文章主要介绍了Docker学习路线2:底层技术。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

了解驱动Docker的核心技术将让您更深入地了解Docker的工作原理,并有助于您更有效地使用该平台。

Linux容器(LXC)

Linux容器(LXC)是Docker的基础。 LXC是一种轻量级的虚拟化解决方案,允许多个隔离的Linux系统在单个主机上运行,无需全功能的虚拟化。 LXC有效地以安全和优化的方式隔离应用程序及其依赖项。

控制组(cgroups)

控制组(cgroups)是Linux内核的一个功能,允许分配和管理资源,例如CPU、内存和I/O,到一组进程。 Docker利用cgroups来限制容器使用的资源,并确保一个容器不会垄断主机系统的资源。

联合文件系统(UnionFS)

UnionFS是一个文件系统服务,允许在单个、统一的视图中叠加多个文件系统。 Docker使用UnionFS为镜像和容器创建分层方法,这使得共享公共文件和更快的容器创建成为可能。

命名空间

命名空间是另一个Linux内核特性,提供进程隔离。它们允许Docker创建名为容器的隔离工作区。命名空间确保容器内的进程不能干扰容器外或主机系统上的进程。有几种类型的命名空间,如PID、NET、MNT和USER,每个命名空间负责隔离进程的不同方面。

命名空间

命名空间是 Docker 用于提供容器之间隔离的核心技术之一。在本节中,我们将简要讨论命名空间是什么以及它们如何工作。

命名空间是什么?

在 Linux 内核中,命名空间是一种功能,允许隔离各种系统资源,使得进程及其子进程能够看到与其他进程分离的系统子集。命名空间有助于创建抽象层,将容器化的进程与彼此和主机系统分开。

Linux 中有几种类型的命名空间,包括:

  • PID (进程 ID):隔离进程 ID 号码空间,这意味着容器内的进程只看到它们自己的进程,而不是主机或其他容器中的进程。
  • Network (NET):为每个容器提供网络堆栈的单独视图,包括其自己的网络接口、路由表和防火墙规则。
  • Mount (MNT):以这样的方式隔离文件系统挂载点,以便每个容器都有自己的根文件系统,并且挂载的资源仅出现在该容器内。
  • UTS (UNIX Time Sharing System):允许每个容器拥有自己的主机名和域名,与其他容器和主机系统分开。
  • User (USER):在容器和主机之间映射用户和组标识符,因此可以为容器内的资源设置不同的权限。
  • IPC (进程间通信):允许或限制不同容器中的进程之间的通信。

Docker 如何使用命名空间

Docker 使用命名空间为容器创建隔离的环境。当容器启动时,Docker 会为该容器创建一组新的命名空间。这些命名空间仅适用于容器内部,因此在容器内运行的任何进程都可以访问一组与其他容器以及主机系统隔离的系统资源的子集。

通过利用命名空间,Docker 确保容器真正具有可移植性,可以在任何系统上运行,而不会与运行在同一主机上的其他进程或容器发生冲突或干扰。

总之,命名空间提供了一种资源隔离的级别,使得在同一主机上运行具有独立系统资源的多个容器成为可能,而它们之间不会相互干扰。这是 Docker 容器技术的支柱性特征。

cgroups

cgroupscontrol groups是Linux内核的一个功能,它允许您在运行系统上的进程组之间分配和管理资源,例如CPU、内存、网络带宽和I/O。它在提供资源隔离和限制运行容器可以使用的资源方面发挥着至关重要的作用。

Docker利用cgroups对容器进行资源约束,从而使它们具有一致和可预测的行为。以下是cgroups在Docker容器上下文中的一些关键功能和优点:

资源隔离

cgroups有助于将每个容器限制在特定的资源集上,确保多个容器之间公平共享系统资源。这可以在不同的容器之间实现更好的隔离,以便不良行为的容器不会消耗所有可用资源,从而对其他容器产生负面影响。

限制资源

使用cgroups,您可以设置容器使用的各种系统资源的限制,例如CPU、内存和I/O。这有助于防止单个容器消耗过多的资源,从而对其他容器或主机系统造成性能问题。

优先处理容器

通过分配不同的资源份额,cgroups允许您优先或优先处理某些容器。这在某些容器比其他容器更为关键或在高资源争用情况下非常有用。

监控

cgroups还提供监视单个容器资源使用的机制,这有助于了解容器性能并识别潜在的资源瓶颈。

总的来说,cgroups是Docker的一个重要的基础技术。通过利用cgroups,Docker提供了一个健壮和高效的容器运行时环境,确保容器具有所需的资源,同时保持良好的整体系统性能。

Docker引擎

“Docker Desktop”和“Docker引擎”之间经常存在混淆。 Docker引擎专指Docker桌面组件的一个子集,它是免费且开源的,只能在Linux上安装。

Docker引擎包括:

  • Docker命令行界面(CLI)
  • Docker守护进程(dockerd),公开Docker应用程序编程接口(API)

Docker引擎可以构建容器镜像,从容器镜像运行容器,并且通常可以执行Docker桌面的大多数操作,但它仅适用于Linux,并且不提供Docker桌面提供的所有开发人员体验。

最后

为了方便其他设备和平台的小伙伴观看往期文章,链接奉上:

公众号 Let us Coding牛客知乎开源中国CSDN思否掘金InfoQ简书博客园慕课51CTOhelloworld腾讯开发者社区阿里开发者社区

看完如果觉得有帮助,欢迎点赞、收藏关注文章来源地址https://www.toymoban.com/news/detail-546355.html

到了这里,关于Docker学习路线2:底层技术的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 网络安全(黑客)技术学习路线

    谈起黑客,可能各位都会想到:盗号,其实不尽然;黑客是一群喜爱研究技术的群体,在黑客圈中,一般分为三大圈: 娱乐圈 技术圈 职业圈 。   娱乐圈:主要是初中生和高中生较多,玩网恋,人气,空间,建站收徒玩赚钱,技术高的也是有的,只是很少见。   技术圈:这

    2024年02月12日
    浏览(40)
  • 【Docker 那些事儿】关于容器底层技术的奥秘

    上一篇文章讲了 Docker 的基本架构和 Namespace 隔离机制:【Docker 那些事儿】关于Namespace隔离机制的奥秘   本篇文章将继续承接上一篇,讲讲 Cgroup 资源控制和容器底层技术原理 在日常工作中,可能需要限制某个或者某些进程的资源分配,于是就出现了 Cgroups 这个概念。 Cgrou

    2024年02月03日
    浏览(41)
  • Docker学习路线11:Docker命令行

    Docker CLI (命令行界面) 是一个强大的工具,可让您与 Docker 容器、映像、卷和网络进行交互和管理。它为用户提供了广泛的命令,用于在其开发和生产工作流中创建、运行和管理 Docker 容器和其他 Docker 资源。 要开始使用 Docker CLI,您需要在计算机上安装 Docker。您可以从 Docke

    2024年02月16日
    浏览(27)
  • Docker学习路线1:介绍

    Docker是一个开源平台,通过将应用程序隔离到轻量级、可移植的容器中,自动化应用程序的部署、扩展和管理。容器是独立的可执行单元,封装了运行应用程序所需的所有必要依赖项、库和配置文件,可以在各种环境中稳定地运行。 容器是一种轻量级、可移植和隔离的软件环

    2024年02月13日
    浏览(25)
  • Docker学习路线4:Docker基础知识

    Docker是一个平台,简化了在轻量、可移植的容器中构建、打包和部署应用程序的过程。在本节中,我们将介绍Docker的基础知识、其组件以及您需要开始使用的关键命令。 容器是一个轻量级、独立的可执行软件包,包含运行应用程序所需的所有依赖项(库、二进制文件和配置文

    2024年02月15日
    浏览(29)
  • Docker学习路线9:运行容器

    要启动一个新的容器,我们使用 docker run 命令,后跟镜像名称。基本语法如下: 例如,要运行官方的 Nginx 镜像,我们可以使用: 这会启动一个新的容器,并将主机的端口 8080 映射到容器的端口 80。 要列出所有正在运行的容器,请使用 docker ps 命令。要查看所有容器(包括已

    2024年02月16日
    浏览(32)
  • Docker学习路线3:安装设置

    Docker提供了一个名为 Docker Desktop 的桌面应用程序,简化了安装和设置过程。还有另一个选项可以使用 Docker引擎 进行安装。 Docker Desktop网站 Docker引擎 Docker Desktop是一款易于安装的应用程序,可使开发人员快速在其台式机上设置Docker环境。它适用于Windows和macOS操作系统。Docke

    2024年02月15日
    浏览(26)
  • Docker学习路线10:容器安全

    容器安全是实施和管理像Docker这样的容器技术的关键方面。它包括一组实践、工具和技术,旨在保护容器化应用程序及其运行的基础架构。在本节中,我们将讨论一些关键的容器安全考虑因素、最佳实践和建议。 隔离对于确保容器化环境的强大性和安全性至关重要。容器应该

    2024年02月16日
    浏览(29)
  • Docker学习路线13:部署容器

    部署容器是使用Docker和容器化管理应用程序更高效、易于扩展和确保跨环境一致性性能的关键步骤。本主题将为您概述如何部署Docker容器以创建和运行应用程序。 Docker容器是轻量级、可移植且自我包含的环境,可以运行应用程序及其依赖项。部署容器涉及启动、管理和扩展这

    2024年02月15日
    浏览(27)
  • ue4技术方向学习路线如何安排?

    作为初学者,您可能会感到UE4(Unreal Engine 4)的学习曲线很陡峭。但是,只要您有一个良好的学习路线和资源,就可以轻松地掌握UE4技术方向。下面是一个可以帮助您快速入门UE4技术方向的学习路线安排。 第一阶段:基础知识 在开始使用UE4之前,您需要先了解一些基础知识

    2024年02月08日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包