news 2026/7/13 16:25:40

深入Docker架构——C/S模式解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
深入Docker架构——C/S模式解析

深入Docker架构——C/S模式解析

  • 一:核心概念
    • 1.1 架构概览
    • 1.2 核心组件详解
      • 1)Docker Client(客户端)
      • 2)Docker Daemon(守护进程/服务器)
      • 3)Docker Registry(镜像仓库)
  • 二:工作流程
    • 2.1 完整命令执行流程
    • 2.2 各阶段详细说明
      • 1)阶段1:客户端处理(1-3步)
      • 2)守护进程处理(4-9步)
      • 3)阶段3:容器运行时创建(10-13步)
  • 总结

🎯 系列介绍

🔔 本文是 《Docker实战入门与部署指南:从核心概念到网络与数据管理》 系列的第四篇!

本系列将从零开始,带你系统性地学习 Docker 的核心概念、安装部署、容器管理、镜像制作、数据持久化与网络配置,最终具备构建和运维容器化应用的能力。

⚠️ 该系列所有涉及的配置脚本、Dockerfile示例和离线安装包都可以私信博主免费获取。


📚 系列篇章总览

  • 第一章:初识Docker——概念与优势
    核心: 理解Docker是什么,它与传统虚拟机的本质区别,以及为何要使用容器化技术。

  • 第二章:环境准备与Docker安装
    核心: 掌握在CentOS系统上搭建Docker运行环境,从操作系统准备到Docker CE的安装、配置与优化。

  • 第三章:Docker基础操作——镜像与容器管理
    核心: 理解Docker是什么,它与传统虚拟机的本质区别,以及为何要使用容器化技术。

  • 第四章:深入Docker架构——C/S模式解析
    核心: 理解Docker客户端与守护进程如何协同工作,这是掌握Docker运行原理和高级管理(如远程连接)的基础

  • 第五章:自定义镜像制作——从Dockerfile到镜像
    核心: 掌握制作自定义镜像的四种方式,重点学习使用Dockerfile进行标准化、可复用的镜像构建。

  • 第六章:数据持久化——Volume与Bind Mount
    核心:解决容器内数据易失性问题,学习如何通过Volume和绑定挂载实现数据的持久化存储与跨容器共享。

  • 第七章:容器网络配置——从互联到自定义桥接
    核心: 掌握容器间的通信方式,学习默认Bridge、Host网络,并最终通过自定义网络和Pipework实现容器与宿主机网络的无缝集成。


🚀 系列最终成果
当你完整学完并实操本系列,你将拥有:

✅ 扎实的Docker理论基础,清晰理解容器、镜像、仓库等核心概念。
✅ 独立部署Docker环境的能力,并完成常用配置优化(如镜像加速)。
✅ 熟练的容器与镜像管理技能,能够进行日常的运维操作。
✅ 制作自定义业务镜像的能力,为应用容器化打下基础。
✅ 解决数据持久化问题的方案,确保应用数据安全。
✅ 配置复杂容器网络的能力,实现容器内外的灵活通信。

真正实现: 概念理解 → 环境搭建 → 日常操作 → 镜像定制 → 数据管理 → 网络配置,一站式掌握Docker核心技能。


一:核心概念

1.1 架构概览

Docker 采用客户端-服务器(Client/Server)模式,主要分为两个部分:

  1. Docker Client(客户端)
    • 你在命令行或脚本里运行的docker命令
    • 负责接收用户操作指令,发送给 Docker Daemon
    • 可以在本机,也可以远程连接 Docker Host
  2. Docker Daemon(服务器 / docker engine)
    • 背后的守护进程dockerd
    • 负责容器生命周期管理
      • 创建容器
      • 启动 / 停止 / 删除容器
      • 镜像拉取 / 构建 / 删除
      • 网络 / 存储管理
    • 接收客户端请求,通过 REST API 执行


1.2 核心组件详解

1)Docker Client(客户端)

功能职责:

  • 接收用户输入的命令(docker run,docker build等)
  • 解析并验证命令参数
  • 通过 REST API 将请求发送到 Docker Daemon
  • 接收响应并格式化输出给用户

通信方式:

  • 默认使用 Unix 套接字:/var/run/docker.sock
  • 支持 TCP 连接进行远程管理
  • 支持 HTTP/HTTPS 协议

2)Docker Daemon(守护进程/服务器)

核心进程:
dockerd

主要职责:

  • 镜像管理(拉取、构建、存储、分发)
  • 容器生命周期管理(创建、启动、停止、删除)
  • 网络管理(网络创建、连接、配置)
  • 数据卷管理(创建、挂载、备份)
  • 接收并处理客户端的 REST API 请求

关键特性:

  • 常驻内存的守护进程
  • 支持插件化架构(网络驱动、存储驱动、日志驱动等)
  • 提供 RESTful API 接口

3)Docker Registry(镜像仓库)

作用:
存储和分发 Docker 镜像

分类:
公共仓库:

  • Docker Hub(默认)
  • Quay.io
  • 阿里云镜像服务等

私有仓库:

  • Harbor
  • Docker Registry
  • Nexus Repository等

二:工作流程

2.1 完整命令执行流程

以下以docker run -d --name web -p 80:80 nginx:latest命令为例,详细解析执行流程:

  1. Docker Client
    • 解析命令
    • 打包请求,发送给 Docker Daemon(默认 Unix socket/var/run/docker.sock或 TCP)
  2. Docker Daemon
    • 接收请求
    • 拉取镜像(如果本地不存在)
    • 创建容器(分配 namespace、cgroup)
    • 启动容器主进程
    • 返回执行结果给 Client
  3. Docker Client
    • 显示日志 / 输出给用户
    • 维持交互(-it交互模式)

2.2 各阶段详细说明

1)阶段1:客户端处理(1-3步)

# 客户端实际执行的API调用curl--unix-socket /var/run/docker.sock\-X POST"http:/v1.41/containers/create?name=web"\-H"Content-Type: application/json"\-d'{ "Image": "nginx:latest", "HostConfig": { "PortBindings": {"80/tcp": [{"HostPort": "80"}]} } }'

2)守护进程处理(4-9步)

  1. 请求验证:检查API版本、参数合法性
  2. 镜像检查:检查本地/var/lib/docker/image/overlay2/repositories.json
  3. 镜像拉取:如果镜像不存在,从Docker Hub拉取
  4. 容器配置
    • 网络配置:创建veth pair,连接到docker0网桥
    • 存储配置:创建容器可写层
    • 资源限制:设置cgroup参数

3)阶段3:容器运行时创建(10-13步)

  1. Container调用:通过gRPC调用containerd的create方法
  2. Runc执行:调用runc create命令
  3. 内核交互
    • unshare():创建新的命名空间
    • mount():挂载rootfs
    • cgroupfs:设置资源限制
  4. 进程启动:执行容器入口点(nginx)

总结

一句话总结:Docker采用经典的客户端-服务器架构,dockerd守护进程通过REST API接收客户端指令,完成从镜像拉取到容器运行的全生命周期管理。

理解Docker的C/S架构是掌握容器化技术的基础,为后续学习Kubernetes等编排工具打下坚实基础。掌握Daemon配置和远程访问安全,能显著提升企业级容器环境的管理能力。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/13 12:54:34

QGIS应用教学——降雨量的空间插值与等值线绘制

前期准备1.QGIS(安装教程见本账号文章) 2.气象数据(请到地球资源数据云中学术社区的同名文章下载)一、从孤立的观测站到连续的雨量图当我们打开附件中从 NOAA(美国国家海洋和大气管理局)下载的气象数据时,映入眼帘的往…

作者头像 李华
网站建设 2026/6/26 13:16:15

基于虚拟仪器LabVIEW实验平台的典型环节的实验系统测试

基于虚拟仪器LabVIEW实验平台的典型环节的实验系统测试 第一章 系统测试目标与核心需求 本测试以LabVIEW虚拟仪器为核心搭建实验平台,开展控制系统典型环节的实验系统测试,核心目标是突破传统物理实验台设备固定、操作繁琐、数据处理效率低的局限&#x…

作者头像 李华
网站建设 2026/7/1 19:08:03

简单理解:高频注入与滑膜观测器是什么意思?

“高频注入” 和 “滑膜观测器” 是电机控制(尤其是无刷电机 FOC 控制)里的两种核心技术,作用都是获取电机转子的位置 / 速度信息(无感 FOC 场景下,不需要编码器),但原理和适用场景完全不同&…

作者头像 李华
网站建设 2026/6/29 4:51:03

Management Controls任命高管,推动澳大利亚业务扩张

战略性任命强化了MCi对澳大利亚及亚太地区增长的长期承诺承包商支出优化领域的全球领导者Management Controls, Inc. (MCi)宣布在澳大利亚进行两项关键的高管任命,以加速其在全澳及更广泛的亚太(APAC)地区的战略扩张。Kelly McLennan加入MCi,担任战略与发…

作者头像 李华
网站建设 2026/7/2 1:38:17

开源的力量:出口设备1200线体程序的配置与优化

出口设备1200线体程序,多个plc走通讯,内部有多个v90,采用工艺对象与fb284 共同控制,功能快全部开源,能快速学会v90的控制在工业自动化领域,出口设备1200线体程序是一个不可或缺的核心控制单元。它不仅负责复杂的控制逻…

作者头像 李华