订阅号可以做网站链接吗,网站首页效果图,南宁优质手机网站建设公司,免费建网站平台哪个好docker架构 Docker daemon 是Docker最核心的后台进程#xff0c;它负责响应来自Dockerclient的请求#xff0c;然后将这此请求翻译成系统调用完成容器管理操作。该进程会在后台后启动一个APIServer#xff0c;负责接收由 Dockerclient发送的请求#xff1b;接收到的请求将通…docker架构 Docker daemon 是Docker最核心的后台进程它负责响应来自Dockerclient的请求然后将这此请求翻译成系统调用完成容器管理操作。该进程会在后台后启动一个APIServer负责接收由 Dockerclient发送的请求接收到的请求将通过Dockerdaemon分发调度再由具体的函数来执行请求。 Docker client 是-个泛称用来向Dockerdaemon发起请求执行相应的容器管理操作 镜像管理 distribution负责与Dockerregistry交互上传下载镜像以及存储与v2registry有关的元数据。 registry模块负责与Dockerregistry有关的身份验证、镜像查找、镜像验证以及管理registry mirror等交互操作。 image模块负责与镜像元数据有关的存储、查找镜像层的索引、查找以及镜像tar包有关的导人导出等操作。 reference负责存储本地所有镜像的repository和tag名并维护与镜像ID之间的映射关系。口layer模块负责与镜像层和容器层元数据有关的增删查改并负责将镜像层的增删查改操作映射到实际存储镜像层文件系统的graphdriver模块。 execdriver容器执行驱动、volumedrivervolume存储驱动、graphdriver镜像存储驱动 execdriver是对Linux操作系统的namespaces、cgroups、apparmor、SELinux等容器运行所需的系统操作进行的一层二次封装其本质作用类似于LXC但是功能要更全面。这也就是为什么LxC会作为execdriver的一种实现而存在。当然execdriver最主要的实现也是现在的默认实现是Docker官方编写的libcontainer库。 volumedriver是volume数据卷存储操作的最终执行者负责volume的增删改查屏蔽不同驱动实现的区别为上层调用者提供一个统一的接口。Docker中作为默认实现的 volumedriver是local默认将文件存储于Docker根目录下的volume文件夹单。其他的 volumedriver均是通过外部插件实现的。 graphdriver是所有与容器镜像相关操作的最终执行者。graphdriver会在Docker工作目录下维护一组与镜像层对应的目录并记下镜像层之间的关系以及与具体的graphdriver实现相关的元数据。这样用户对镜像的操作最终会被映射成对这些目录文件以及元数据的增删改查从而屏蔽掉不同文件存储实现对于上层调用者的影响。在Linux环境下目前 Docker已经支持的graphdriver包括aufs、btrfs、zfs、devicemapper、overlay和vfs。 network libnetwork抽象出了一个容器网络模型Container NetworkModelCNM并给调用者提供了一个统一抽象接口其目标并不仅限于Docker容器 docker 工作目录结构 libcontainer实现原理 用Factory创建逻辑容器Container 用逻辑容器创建物理容器 启动逻辑容器Container docker daemon 与容器之间通信 发送信号通知signal 对内存轮询访问pollmemory sockets通信sockets 文件和文件描述符filesandfile-descriptors