《容器技术系列》一1.2 Docker总架构图

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 本节书摘来华章计算机《容器技术系列》一书中的第1章 ,第1.2节,孙宏亮 著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。 1.2 Docker总架构图 作为Linux平台上的一种容器的管理引擎,Docker并不像其他大型分布式系统那样复杂。

本节书摘来华章计算机《容器技术系列》一书中的第1章 ,第1.2节,孙宏亮 著, 更多章节内容可以访问云栖社区“华章计算机公众号查看。

1.2 Docker总架构图

作为Linux平台上的一种容器的管理引擎,Docker并不像其他大型分布式系统那样复杂。Docker的源码总量并不多,而且清晰的源码结构使得Docker的学习成本并不高。换言之,Docker源码的学习过程并不枯燥,我们可以从中学到很多东西,如Go语言的运用、Docker架构的设计原理等。Docker对用户而言是一个简单的C/S架构,用户通过客户端与服务器端建立通信,而Docker的后端是一个松耦合的架构,架构中的模块各司其职、有机组合,支撑着Docker运行。
Docker的总架构如图1-1所示。架构中主要的模块有:DockerClient、DockerDaemon、Docker Registry、Graph、Driver、libcontainer以及Docker Container。
对用户而言,Docker Client是与Docker Daemon建立通信的最佳途径。用户通过Docker Client发起容器的管理请求,请求最终发往Docker Daemon。
Docker Daemon作为Docker架构中的主体部分,首先具备服务端的功能,有能力接收Docker Client发起的请求;其次具备Docker Client请求的处理能力。Docker Daemon内部所有的任务均由Engine来完成,且每一项工作都以一个Job的形式存在。
Docker Daemon需要完成的任务很多,因此Job的种类也很多。若用户需要下载容器镜像,Docker Daemon则会创建一个名为“pull”的Job,运行时从Docker Registry中下载镜像,并通过镜像管理驱动graphdriver将下载的镜像存储在graph中;若用户需要为Docker容器创建网络环境,Docker Daemon则会创建一个名“allocate_interface”的Job,通过网络驱动networkdriver分配网络接口的资源……
libcontainer是一套独立的容器管理解决方案,这套解决方案涉及了大量Linux内核方面的特性,如:namespaces、cgroups以及capabilities等。libcontainer很好地抽象了Linux的内核特性,并提供完整、明确的接口给Docker Daemon。
当用户执行运行容器这个命令之后,一个Docker容器就处于运行状态,该容器拥有隔离的运行环境、独立的网络栈资源以及受限的资源等。


image

相关文章
|
1天前
|
运维 Kubernetes Devops
构建高效自动化运维体系:DevOps与容器技术融合实践
【5月更文挑战第25天】 在当今快速迭代的软件开发周期中,传统的IT运维模式已难以满足高效率、低成本和敏捷响应的业务需求。本文将探讨如何通过整合DevOps理念和容器技术来构建一个高效的自动化运维体系。我们将详细剖析持续集成/持续部署(CI/CD)流程的实施,容器化技术的运用,以及这些策略如何帮助企业实现运维效率的显著提升和服务稳定性的保障。文章还将提供一些实用的工具选择建议,并讨论在实施过程中可能遇到的挑战及相应的解决策略。
|
2天前
|
运维 Kubernetes 监控
构建高效自动化运维体系:基于容器技术的持续集成与持续部署实践
【5月更文挑战第23天】 在现代IT基础设施管理中,自动化运维是提升效率、减少人为错误和加快产品上市速度的关键。本文将探讨如何利用容器技术来构建一个高效的自动化运维体系,特别关注于持续集成(CI)与持续部署(CD)的实施。文章首先概述了容器技术和CI/CD的基本概念及其相互关系,接着详细阐述了如何通过Docker和Kubernetes等工具来实现自动化的构建、测试和部署流程。此外,文章还讨论了监控、日志管理和安全性策略的重要性,以确保自动化运维体系的稳定运行。最后,分享了实际案例分析以及未来发展趋势,为读者提供深入理解并实施自动化运维的参考。
|
3天前
|
运维 监控 测试技术
构建高效自动化运维体系:基于容器技术的持续集成与持续部署实践
在数字化转型的浪潮中,企业对软件交付速度和质量的要求日益提高。传统的运维模式已难以满足快速迭代和高可靠性的双重需求。本文将探讨如何利用容器技术构建一个高效的自动化运维体系,实现软件开发过程中的持续集成(CI)与持续部署(CD)。通过分析容器化的优势、CI/CD流程的关键组件以及实际落地策略,为读者提供一种提升运维效率、降低人为错误并加速产品上市时间的解决方案。
|
3天前
|
Prometheus 监控 Cloud Native
Ubantu docker学习笔记(九)容器监控 自带的监控+sysdig+scope+cAdvisor+prometheus
Ubantu docker学习笔记(九)容器监控 自带的监控+sysdig+scope+cAdvisor+prometheus
|
3天前
|
网络协议 Docker 容器
Ubantu docker学习笔记(七)容器网络
Ubantu docker学习笔记(七)容器网络
|
3天前
|
Docker 容器
Ubantu docker学习笔记(六)容器数据卷——补充实验
Ubantu docker学习笔记(六)容器数据卷——补充实验
|
3天前
|
安全 Linux Docker
Ubantu docker学习笔记(六)容器数据卷
Ubantu docker学习笔记(六)容器数据卷
Ubantu docker学习笔记(六)容器数据卷
|
3天前
|
存储 Linux 调度
Ubantu docker学习笔记(五)容器底层技术
Ubantu docker学习笔记(五)容器底层技术
|
存储 网络协议 Unix
图解 Docker 架构
01 Docker 的总体架构 Docker 是一个 C/S 模式的架构,后端是一个松耦合架构,模块各司其职。下图是它的总体架构图:
图解 Docker 架构
|
5天前
|
Prometheus 监控 Cloud Native
构建高效稳定的Docker容器监控体系
【5月更文挑战第20天】 在微服务架构日益普及的今天,Docker作为其重要的实现技术之一,承载着大量应用的运行。然而,随之而来的是对于容器健康状态、资源使用情况以及性能指标的监控需求急剧增加。本文旨在探讨构建一个高效且稳定的Docker容器监控体系,不仅涵盖了监控工具的选择与配置,还详细阐述了监控数据的分析与处理流程。通过精心设计的监控策略和实时响应机制,我们能够确保系统的稳定性,并及时发现及处理潜在的问题。