关注△mikechen△,十余年BAT架构经验倾囊相授!
大家好,我是mikechen睿哥。
Docker是大型架构的必备技能,也是云原生核心,下面我重点详解Docker底层原理@mikechen
Docker
Docker容器化作为一种轻量级的虚拟化技术,其核心思想是将应用程序及其所有依赖项打包在一起,形成一个可移植的单元。
Docker 就像软件交付的集装箱:
打包应用程序及其依赖项; 提供标准化的格式和运行环境; 实现应用程序之间的隔离; 使得应用程序可以在不同的环境中轻松部署、和运行;
Docker架构
Docker 采用典型的 C/S 架构(Client/Server),如下图所示:
主要由以下 5 大核心组件组成:
1.Docker Client(客户端)
角色: 用户与 Docker 进行交互的工具。
功能: 提供命令行接口 (docker
命令) 或其他工具,允许用户发送指令给 Docker Daemon,例如构建、拉取、运行、停止容器等。
特点: 轻量级,只负责发送请求,实际操作由 Docker Daemon 执行。
可以与本地或远程的 Docker Daemon 通信。
2. Docker Daemon(守护进程)
角色: Docker 架构中的服务器端组件。
功能: 在宿主机后台运行,接收并执行来自 Docker Client 的请求。
负责管理 Docker 对象(镜像、容器、网络、卷),与操作系统内核交互(利用 Namespace 和 Cgroups 实现隔离和资源管理)。
特点: 是 Docker 的核心,执行所有容器化操作。
3. Docker Image(镜像)
角色: 创建 Docker 容器的模板或蓝图。
功能: 包含运行应用程序所需的所有内容(代码、运行时、库、环境变量、配置文件等)。
特点: 只读,分层存储,轻量级,可用于创建多个相同的容器。
4. Docker Container(容器)
角色: Docker 镜像的运行实例。
功能: 提供一个隔离的运行环境,运行应用程序。
特点: 基于镜像创建,可写层,隔离性(通过 Namespace),资源限制(通过 Cgroups),生命周期短暂。
5. Docker Registry(镜像仓库)
角色: 存储和分发 Docker 镜像的服务。
功能: 允许用户上传(push)和下载(pull)Docker 镜像。
特点: 可以是公共的(如 Docker Hub)或私有的。是 Docker 镜像共享和协作的关键。
希望这些简洁的介绍能够帮助您快速了解 Docker 的核心组成部分。
Docker原理
Docker 容器,主要是通过 Linux 提供的三大核心机制实现:
1.Namespace:实现资源隔离
Namespace是Linux内核提供的资源隔离机制,为容器创建独立的系统资源视图,包括:
PID Namespace:隔离进程ID,容器内进程只能看到本容器进程。
Network Namespace:隔离网络栈,容器拥有独立的网络接口和IP。
Mount Namespace:隔离文件系统挂载点,容器有独立文件系统视图。
User Namespace:隔离用户和组ID,提升安全性。
IPC、UTS等 Namespace:隔离进程间通信、主机名等资源。
通过Namespace,Docker容器实现进程、网络、文件系统等多维度的隔离,保证容器间互不干扰。
2.Cgroups:资源限制与配额
Cgroups是Linux内核的资源管理机制,用于限制和监控容器的资源使用,包括CPU、内存、磁盘I/O和网络带宽。
它保证容器不会超出分配资源,防止资源争抢和系统过载。
Cgroups支持资源优先级管理和统计监控,是Docker实现资源控制的基础。
3.UnionFS:镜像的分层文件系统
UnionFS(联合文件系统)允许将多个只读镜像层叠加,形成一个统一的文件系统视图。
每个镜像层存储相对于上一层的增量变化,支持镜像层的共享和复用。
容器启动时,在镜像层之上添加可写层,实现写时复制(Copy-on-Write),保证镜像层只读且容器的文件变更隔离。
以上
最后送大家一个福利:
送我原创超30万字阿里架构师进阶专题合集。
以及给大家整理最全大厂Java面试题及答案详解,包含:Java、多线程、JVM、Spring、MySQL、Redis、中间件...等必考题答案详解。
需要以上架构专题&面试答案的同学,加我微信即可领取!
添加时备注:资料

优网科技秉承"专业团队、品质服务" 的经营理念,诚信务实的服务了近万家客户,成为众多世界500强、集团和上市公司的长期合作伙伴!
优网科技成立于2001年,擅长网站建设、网站与各类业务系统深度整合,致力于提供完善的企业互联网解决方案。优网科技提供PC端网站建设(品牌展示型、官方门户型、营销商务型、电子商务型、信息门户型、DIY体验、720全景展厅及3D虚拟仿真)、移动端应用(手机站、APP开发)、微信定制开发(微信官网、微信商城、企业微信)、微信小程序定制开发等一系列互联网应用服务。