<svg viewBox="0 0 720 340" xmlns="http://www.w3.org/2000/svg" font-family="Avenir, Helvetica Neue, Arial, sans-serif" font-size="13">

  <rect width="720" height="340" fill="#ffffff"/>

  <!-- === COLONNE VM === -->
  <text x="175" y="28" text-anchor="middle" font-size="15" font-weight="600" fill="#006699">Machine virtuelle</text>

  <!-- Matériel -->
  <rect x="30" y="290" width="290" height="36" rx="4" fill="#006699"/>
  <text x="175" y="313" text-anchor="middle" fill="#ffffff" font-weight="600">Matériel physique</text>

  <!-- Hyperviseur -->
  <rect x="30" y="248" width="290" height="36" rx="4" fill="#0080b3"/>
  <text x="175" y="271" text-anchor="middle" fill="#ffffff" font-weight="600">Hyperviseur (VMware, KVM…)</text>

  <!-- VM 1 -->
  <rect x="35" y="40" width="130" height="200" rx="6" fill="#e8f4f8" stroke="#006699" stroke-width="1.5"/>
  <text x="100" y="60" text-anchor="middle" font-weight="600" fill="#006699">VM 1</text>
  <rect x="45" y="68" width="110" height="28" rx="3" fill="#b3d9e8"/>
  <text x="100" y="87" text-anchor="middle" fill="#004d66" font-size="11">OS invité (Linux)</text>
  <rect x="45" y="102" width="110" height="28" rx="3" fill="#b3d9e8"/>
  <text x="100" y="121" text-anchor="middle" fill="#004d66" font-size="11">Bibliothèques</text>
  <rect x="45" y="136" width="110" height="28" rx="3" fill="#cce8b3"/>
  <text x="100" y="155" text-anchor="middle" fill="#2d5a1b" font-size="11">App A</text>
  <rect x="45" y="170" width="110" height="28" rx="3" fill="#cce8b3"/>
  <text x="100" y="189" text-anchor="middle" fill="#2d5a1b" font-size="11">App B</text>
  <text x="100" y="228" text-anchor="middle" fill="#888" font-size="10">~512 Mo RAM</text>
  <text x="100" y="242" text-anchor="middle" fill="#888" font-size="10">boot ~30 s</text>

  <!-- VM 2 -->
  <rect x="180" y="40" width="130" height="200" rx="6" fill="#e8f4f8" stroke="#006699" stroke-width="1.5"/>
  <text x="245" y="60" text-anchor="middle" font-weight="600" fill="#006699">VM 2</text>
  <rect x="190" y="68" width="110" height="28" rx="3" fill="#b3d9e8"/>
  <text x="245" y="87" text-anchor="middle" fill="#004d66" font-size="11">OS invité (Windows)</text>
  <rect x="190" y="102" width="110" height="28" rx="3" fill="#b3d9e8"/>
  <text x="245" y="121" text-anchor="middle" fill="#004d66" font-size="11">Bibliothèques</text>
  <rect x="190" y="136" width="110" height="28" rx="3" fill="#cce8b3"/>
  <text x="245" y="155" text-anchor="middle" fill="#2d5a1b" font-size="11">App C</text>
  <rect x="190" y="170" width="110" height="28" rx="3" fill="#cce8b3"/>
  <text x="245" y="189" text-anchor="middle" fill="#2d5a1b" font-size="11">App D</text>
  <text x="245" y="228" text-anchor="middle" fill="#888" font-size="10">~512 Mo RAM</text>
  <text x="245" y="242" text-anchor="middle" fill="#888" font-size="10">boot ~30 s</text>

  <!-- Séparateur -->
  <line x1="360" y1="20" x2="360" y2="330" stroke="#cccccc" stroke-width="1.5" stroke-dasharray="6,4"/>

  <!-- === COLONNE DOCKER === -->
  <text x="545" y="28" text-anchor="middle" font-size="15" font-weight="600" fill="#006699">Docker</text>

  <!-- Matériel -->
  <rect x="400" y="290" width="290" height="36" rx="4" fill="#006699"/>
  <text x="545" y="313" text-anchor="middle" fill="#ffffff" font-weight="600">Matériel physique</text>

  <!-- OS hôte -->
  <rect x="400" y="248" width="290" height="36" rx="4" fill="#0080b3"/>
  <text x="545" y="271" text-anchor="middle" fill="#ffffff" font-weight="600">OS hôte (kernel Linux partagé)</text>

  <!-- Docker Engine -->
  <rect x="400" y="210" width="290" height="32" rx="4" fill="#0099cc"/>
  <text x="545" y="231" text-anchor="middle" fill="#ffffff" font-weight="600">Docker Engine</text>

  <!-- Conteneur 1 -->
  <rect x="408" y="40" width="82" height="164" rx="6" fill="#e8f4f8" stroke="#006699" stroke-width="1.5"/>
  <text x="449" y="58" text-anchor="middle" font-weight="600" fill="#006699" font-size="11">Cont. 1</text>
  <rect x="415" y="64" width="68" height="24" rx="3" fill="#b3d9e8"/>
  <text x="449" y="80" text-anchor="middle" fill="#004d66" font-size="10">Libs</text>
  <rect x="415" y="94" width="68" height="24" rx="3" fill="#cce8b3"/>
  <text x="449" y="110" text-anchor="middle" fill="#2d5a1b" font-size="10">App A</text>
  <text x="449" y="150" text-anchor="middle" fill="#888" font-size="9">~5 Mo</text>
  <text x="449" y="163" text-anchor="middle" fill="#888" font-size="9">boot &lt;1 s</text>
  <text x="449" y="195" text-anchor="middle" fill="#888" font-size="9">Node 18</text>

  <!-- Conteneur 2 -->
  <rect x="497" y="40" width="82" height="164" rx="6" fill="#e8f4f8" stroke="#006699" stroke-width="1.5"/>
  <text x="538" y="58" text-anchor="middle" font-weight="600" fill="#006699" font-size="11">Cont. 2</text>
  <rect x="504" y="64" width="68" height="24" rx="3" fill="#b3d9e8"/>
  <text x="538" y="80" text-anchor="middle" fill="#004d66" font-size="10">Libs</text>
  <rect x="504" y="94" width="68" height="24" rx="3" fill="#cce8b3"/>
  <text x="538" y="110" text-anchor="middle" fill="#2d5a1b" font-size="10">App B</text>
  <text x="538" y="150" text-anchor="middle" fill="#888" font-size="9">~8 Mo</text>
  <text x="538" y="163" text-anchor="middle" fill="#888" font-size="9">boot &lt;1 s</text>
  <text x="538" y="195" text-anchor="middle" fill="#888" font-size="9">Node 20</text>

  <!-- Conteneur 3 -->
  <rect x="586" y="40" width="96" height="164" rx="6" fill="#e8f4f8" stroke="#006699" stroke-width="1.5"/>
  <text x="634" y="58" text-anchor="middle" font-weight="600" fill="#006699" font-size="11">Cont. 3</text>
  <rect x="593" y="64" width="82" height="24" rx="3" fill="#b3d9e8"/>
  <text x="634" y="80" text-anchor="middle" fill="#004d66" font-size="10">Libs</text>
  <rect x="593" y="94" width="82" height="24" rx="3" fill="#cce8b3"/>
  <text x="634" y="110" text-anchor="middle" fill="#2d5a1b" font-size="10">App C</text>
  <text x="634" y="150" text-anchor="middle" fill="#888" font-size="9">~12 Mo</text>
  <text x="634" y="163" text-anchor="middle" fill="#888" font-size="9">boot &lt;1 s</text>
  <text x="634" y="195" text-anchor="middle" fill="#888" font-size="9">Python 3.12</text>

</svg>
