3.Docker底层技术和架构

Docker用Go编程语言编写,并利用Linux内核的多个功能来交付其功能。

命名空间(namespaces)

Docker使用一种称为namespaces的技术来提供称为container的隔离工作区。运行容器时,Docker会为该容器创建一组 namespaces

这些命名空间提供了一层隔离。容器的每个方面都在单独的命名空间中运行,并且对其的访问仅限于该命名空间。

Docker Engine在Linux上使用以下命名空间:

  • pid命名空间:进程隔离(PID: Process ID)。
  • net命名空间:管理网络接口(NET: Networking)。
  • ipc命名空间:管理访问IPC资源(IPC: InterProcess Communication)。
  • mnt命名空间:管理文件系统挂载点(MNT: Mount)。
  • uts命名空间:隔离内核和版本标识符。(UTS: Unix Timesharing System)。

控制组(Control groups)

Linux上的Docker引擎还依赖于另一种称为控制组 (cgroups)的技术。cgroup将应用程序限制为一组特定的资源。控制组允许Docker Engine将可用的硬件资源共享给容器,并有选择地实施限制和约束。例如,您可以限制特定容器可用的内存。

联合文件系统(Union file systems)

联合文件系统或UnionFS是通过创建层进行操作的文件系统,使其非常轻便且快速。Docker Engine使用UnionFS为容器提供构建模块。Docker Engine可以使用多个UnionFS变体,包括AUFS,btrfs,vfs和DeviceMapper。

容器格式(Container format)

Docker Engine将名称空间,控制组和UnionFS组合到一个称为容器格式的包装器中。默认容器格式为libcontainer。将来,Docker可以通过与BSD Jails或Solaris Zones等技术集成来支持其他容器格式。

Docker Engine和架构

Docker Engine是具有以下主要组件的客户端-服务器应用程序:

  • 服务器是一种长期运行的程序,称为守护程序进程( dockerd命令)。
  • REST API,它指定程序可以用来与守护程序进行通信并指示其操作的接口。
  • 命令行界面(CLI)客户端(docker命令)。
.Docker底层技术和架构"/

CLI使用Docker REST API通过脚本或直接CLI命令来控制Docker守护程序或与Docker守护程序进行交互。许多其他Docker应用程序都使用基础API和CLI。

Docker使用客户端-服务器架构。Docker客户端与Docker守护进程进行对话,该守护进程完成了构建,运行和分发Docker容器的繁重工作。Docker客户端和守护程序可以 在同一系统上运行,或者您可以将Docker客户端连接到远程Docker守护程序。Docker客户端和守护程序在UNIX套接字或网络接口上使用REST API进行通信。

.Docker底层技术和架构"/

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/basic/docker/2854.html

(0)
上一篇 2020年12月4日 20:07
下一篇 2020年12月4日 20:12

相关推荐

  • 8.安装Docker-Compose步骤(Ubuntu)

    安装 安装Docker-Compose前务必确保已安装Docker Engine。 首先从Compose repository release page on GitHub查询需要安装的版本,然后安装Docker-Compose: 要安装其他版本的Compose,请替换1.27.4 为要使用的Compose版本。 将可…

    Docker教程 2020年12月5日
    01.2K0
  • 7.安装Docker Engine(Ubuntu)

    在Ubuntu上的Docker Engine支持overlay2,aufs和btrfs存储驱动程序。 Docker Engine默认使用overlay2存储驱动程序。如果需要使用 aufs,则需要手动配置。 1.卸载已安装的旧版本docker 2.安装依赖包 3.安装docker官方GPG key 4.验证密…

    Docker教程 2020年12月4日
    06090
  • 9.Docker-Slim安装以及使用步骤(Ubuntu)

    Docker-Slim是一款Docker映像瘦身同样也使Docker映像更安全的工具,不改变您映像里面的任何东西,瘦身最大30倍(编译型语言更大,Golang高达448倍),Docker-Slim通过了解您的应用程序以及使用各种分析技术所需要的内容,将优化并保护您的容器。 安装 1.下载最新的Docker-Slim压缩…

    Docker教程 2020年12月22日
    02.8K0

发表评论

登录后才能评论