<svg xmlns="http://www.w3.org/2000/svg" width="960" height="540" viewBox="0 0 960 540" role="img" aria-labelledby="title desc">
  <title id="title">Docker 容器架构组成</title>
  <desc id="desc">展示 Docker Client、Docker Daemon、containerd、runc、镜像仓库和 Linux 内核能力之间的关系。</desc>
  <rect width="960" height="540" rx="28" fill="#eef2ff"/>
  <text x="480" y="58" text-anchor="middle" font-size="30" font-weight="700" fill="#312e81" font-family="Arial,'Microsoft YaHei',sans-serif">Docker 容器架构：从命令到内核隔离</text>
  <g font-family="Arial,'Microsoft YaHei',sans-serif" text-anchor="middle">
    <rect x="70" y="120" width="170" height="70" rx="16" fill="#ffffff" stroke="#6366f1" stroke-width="2"/><text x="155" y="163" font-size="18" fill="#312e81">Docker Client</text>
    <rect x="300" y="120" width="190" height="70" rx="16" fill="#ffffff" stroke="#6366f1" stroke-width="2"/><text x="395" y="163" font-size="18" fill="#312e81">Docker Daemon</text>
    <rect x="560" y="120" width="160" height="70" rx="16" fill="#ffffff" stroke="#6366f1" stroke-width="2"/><text x="640" y="163" font-size="18" fill="#312e81">containerd</text>
    <rect x="780" y="120" width="110" height="70" rx="16" fill="#ffffff" stroke="#6366f1" stroke-width="2"/><text x="835" y="163" font-size="18" fill="#312e81">runc</text>
    <rect x="140" y="300" width="210" height="75" rx="18" fill="#dbeafe"/><text x="245" y="345" font-size="18" fill="#1d4ed8">镜像仓库 Registry</text>
    <rect x="430" y="285" width="390" height="105" rx="22" fill="#dcfce7"/><text x="625" y="325" font-size="19" font-weight="700" fill="#166534">Linux 内核能力</text><text x="625" y="360" font-size="16" fill="#166534">Namespaces / Cgroups / OverlayFS / seccomp</text>
  </g>
  <defs><marker id="a" markerWidth="10" markerHeight="10" refX="8" refY="3" orient="auto"><path d="M0,0 L0,6 L9,3 z" fill="#4f46e5"/></marker></defs>
  <path d="M240 155 H300" stroke="#4f46e5" stroke-width="4" marker-end="url(#a)"/>
  <path d="M490 155 H560" stroke="#4f46e5" stroke-width="4" marker-end="url(#a)"/>
  <path d="M720 155 H780" stroke="#4f46e5" stroke-width="4" marker-end="url(#a)"/>
  <path d="M395 190 C350 235 300 265 245 300" stroke="#4f46e5" stroke-width="3" fill="none" stroke-dasharray="7 7"/>
  <path d="M835 190 C800 240 725 270 625 285" stroke="#4f46e5" stroke-width="3" fill="none" marker-end="url(#a)"/>
  <text x="480" y="465" text-anchor="middle" font-size="18" fill="#4338ca" font-family="Arial,'Microsoft YaHei',sans-serif">用户看到的是容器，底层是运行时、镜像、文件系统与内核机制的协作</text>
</svg>
