Files
docker-workshop/docker-konzepte.svg
Frank Woeckener bbc98e1b4a Initial Commit
2025-03-18 06:29:45 +01:00

251 lines
17 KiB
XML

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 900 700">
<!-- Hintergrund -->
<rect width="900" height="700" fill="#f5f5f5"/>
<!-- Docker Host -->
<rect x="50" y="80" width="800" height="560" rx="10" ry="10" fill="#e9f0f5" stroke="#2496ed" stroke-width="2"/>
<text x="70" y="110" font-family="Arial" font-size="18" font-weight="bold" fill="#333">Docker Host</text>
<!-- Docker Engine -->
<rect x="70" y="130" width="760" height="490" rx="8" ry="8" fill="#f0f7fa" stroke="#2496ed" stroke-width="2" stroke-dasharray="5,5"/>
<text x="90" y="160" font-family="Arial" font-size="16" font-weight="bold" fill="#333">Docker Engine</text>
<!-- Docker Daemon Bereich -->
<rect x="350" y="170" width="160" height="110" rx="5" ry="5" fill="#2496ed" stroke="#1e88e5" stroke-width="2"/>
<text x="430" y="195" font-family="Arial" font-size="14" font-weight="bold" fill="white" text-anchor="middle">Docker Daemon</text>
<!-- Daemon-Komponenten -->
<rect x="365" y="205" width="130" height="25" rx="3" ry="3" fill="#1a75bb" stroke="#1e88e5" stroke-width="1"/>
<text x="430" y="222" font-family="Arial" font-size="11" fill="white" text-anchor="middle">containerd</text>
<rect x="365" y="235" width="130" height="25" rx="3" ry="3" fill="#1a75bb" stroke="#1e88e5" stroke-width="1"/>
<text x="430" y="252" font-family="Arial" font-size="11" fill="white" text-anchor="middle">runc</text>
<!-- Docker Client Bereich -->
<rect x="90" y="170" width="160" height="110" rx="5" ry="5" fill="#2496ed" stroke="#1e88e5" stroke-width="2"/>
<text x="170" y="195" font-family="Arial" font-size="14" font-weight="bold" fill="white" text-anchor="middle">Docker Client</text>
<!-- Client-Komponenten -->
<rect x="105" y="205" width="130" height="25" rx="3" ry="3" fill="#1a75bb" stroke="#1e88e5" stroke-width="1"/>
<text x="170" y="222" font-family="Arial" font-size="11" fill="white" text-anchor="middle">CLI (docker)</text>
<rect x="105" y="235" width="130" height="25" rx="3" ry="3" fill="#1a75bb" stroke="#1e88e5" stroke-width="1"/>
<text x="170" y="252" font-family="Arial" font-size="11" fill="white" text-anchor="middle">docker-compose</text>
<!-- Docker Registry -->
<rect x="620" y="170" width="160" height="110" rx="5" ry="5" fill="#2496ed" stroke="#1e88e5" stroke-width="2"/>
<text x="700" y="195" font-family="Arial" font-size="14" font-weight="bold" fill="white" text-anchor="middle">Docker Registry</text>
<!-- Registry-Komponenten -->
<rect x="635" y="205" width="130" height="25" rx="3" ry="3" fill="#1a75bb" stroke="#1e88e5" stroke-width="1"/>
<text x="700" y="222" font-family="Arial" font-size="11" fill="white" text-anchor="middle">Docker Hub</text>
<rect x="635" y="235" width="130" height="25" rx="3" ry="3" fill="#1a75bb" stroke="#1e88e5" stroke-width="1"/>
<text x="700" y="252" font-family="Arial" font-size="11" fill="white" text-anchor="middle">Private Registry</text>
<!-- Images -->
<rect x="150" y="325" width="160" height="110" rx="5" ry="5" fill="#3fe0d0" stroke="#1e88e5" stroke-width="2"/>
<text x="230" y="345" font-family="Arial" font-size="14" font-weight="bold" fill="#333" text-anchor="middle">Images</text>
<!-- Image-Detailschichten -->
<rect x="165" y="355" width="130" height="20" rx="3" ry="3" fill="#2ed1c3" stroke="#1e88e5" stroke-width="1"/>
<text x="230" y="369" font-family="Arial" font-size="10" fill="#333" text-anchor="middle">Basis-Layer (OS)</text>
<rect x="165" y="375" width="130" height="20" rx="3" ry="3" fill="#2ed1c3" stroke="#1e88e5" stroke-width="1"/>
<text x="230" y="389" font-family="Arial" font-size="10" fill="#333" text-anchor="middle">Anwendungs-Layer</text>
<rect x="165" y="395" width="130" height="20" rx="3" ry="3" fill="#2ed1c3" stroke="#1e88e5" stroke-width="1"/>
<text x="230" y="409" font-family="Arial" font-size="10" fill="#333" text-anchor="middle">Konfiguration</text>
<!-- Container -->
<rect x="380" y="325" width="160" height="110" rx="5" ry="5" fill="#3fe0d0" stroke="#1e88e5" stroke-width="2"/>
<text x="460" y="345" font-family="Arial" font-size="14" font-weight="bold" fill="#333" text-anchor="middle">Container</text>
<!-- Container-Lebenszyklus -->
<rect x="395" y="355" width="130" height="20" rx="3" ry="3" fill="#2ed1c3" stroke="#1e88e5" stroke-width="1"/>
<text x="460" y="369" font-family="Arial" font-size="10" fill="#333" text-anchor="middle">Created → Running</text>
<rect x="395" y="375" width="130" height="20" rx="3" ry="3" fill="#2ed1c3" stroke="#1e88e5" stroke-width="1"/>
<text x="460" y="389" font-family="Arial" font-size="10" fill="#333" text-anchor="middle">Paused / Stopped</text>
<rect x="395" y="395" width="130" height="20" rx="3" ry="3" fill="#2ed1c3" stroke="#1e88e5" stroke-width="1"/>
<text x="460" y="409" font-family="Arial" font-size="10" fill="#333" text-anchor="middle">Exited → Removed</text>
<!-- Docker Compose -->
<rect x="610" y="325" width="160" height="110" rx="5" ry="5" fill="#3fe0d0" stroke="#1e88e5" stroke-width="2"/>
<text x="690" y="345" font-family="Arial" font-size="14" font-weight="bold" fill="#333" text-anchor="middle">Docker Compose</text>
<!-- Compose-Details -->
<rect x="625" y="355" width="130" height="20" rx="3" ry="3" fill="#2ed1c3" stroke="#1e88e5" stroke-width="1"/>
<text x="690" y="369" font-family="Arial" font-size="10" fill="#333" text-anchor="middle">Multi-Services</text>
<rect x="625" y="375" width="130" height="20" rx="3" ry="3" fill="#2ed1c3" stroke="#1e88e5" stroke-width="1"/>
<text x="690" y="389" font-family="Arial" font-size="10" fill="#333" text-anchor="middle">Abhängigkeiten</text>
<rect x="625" y="395" width="130" height="20" rx="3" ry="3" fill="#2ed1c3" stroke="#1e88e5" stroke-width="1"/>
<text x="690" y="409" font-family="Arial" font-size="10" fill="#333" text-anchor="middle">YAML-Konfiguration</text>
<!-- Volumes -->
<rect x="150" y="480" width="160" height="110" rx="5" ry="5" fill="#ffcc80" stroke="#ff9800" stroke-width="2"/>
<text x="230" y="500" font-family="Arial" font-size="14" font-weight="bold" fill="#333" text-anchor="middle">Volumes</text>
<!-- Volume-Typen -->
<rect x="165" y="510" width="130" height="20" rx="3" ry="3" fill="#ffb74d" stroke="#ff9800" stroke-width="1"/>
<text x="230" y="524" font-family="Arial" font-size="10" fill="#333" text-anchor="middle">Named Volumes</text>
<rect x="165" y="530" width="130" height="20" rx="3" ry="3" fill="#ffb74d" stroke="#ff9800" stroke-width="1"/>
<text x="230" y="544" font-family="Arial" font-size="10" fill="#333" text-anchor="middle">Bind Mounts</text>
<rect x="165" y="550" width="130" height="20" rx="3" ry="3" fill="#ffb74d" stroke="#ff9800" stroke-width="1"/>
<text x="230" y="564" font-family="Arial" font-size="10" fill="#333" text-anchor="middle">tmpfs Mounts</text>
<!-- Networks -->
<rect x="380" y="480" width="160" height="110" rx="5" ry="5" fill="#ffcc80" stroke="#ff9800" stroke-width="2"/>
<text x="460" y="500" font-family="Arial" font-size="14" font-weight="bold" fill="#333" text-anchor="middle">Networks</text>
<!-- Netzwerk-Typen -->
<rect x="395" y="510" width="130" height="20" rx="3" ry="3" fill="#ffb74d" stroke="#ff9800" stroke-width="1"/>
<text x="460" y="524" font-family="Arial" font-size="10" fill="#333" text-anchor="middle">Bridge Network</text>
<rect x="395" y="530" width="130" height="20" rx="3" ry="3" fill="#ffb74d" stroke="#ff9800" stroke-width="1"/>
<text x="460" y="544" font-family="Arial" font-size="10" fill="#333" text-anchor="middle">Host Network</text>
<rect x="395" y="550" width="130" height="20" rx="3" ry="3" fill="#ffb74d" stroke="#ff9800" stroke-width="1"/>
<text x="460" y="564" font-family="Arial" font-size="10" fill="#333" text-anchor="middle">Overlay Network</text>
<!-- Sicherheit -->
<rect x="610" y="480" width="160" height="110" rx="5" ry="5" fill="#ffcc80" stroke="#ff9800" stroke-width="2"/>
<text x="690" y="500" font-family="Arial" font-size="14" font-weight="bold" fill="#333" text-anchor="middle">Sicherheit</text>
<!-- Sicherheits-Komponenten -->
<rect x="625" y="510" width="130" height="20" rx="3" ry="3" fill="#ffb74d" stroke="#ff9800" stroke-width="1"/>
<text x="690" y="524" font-family="Arial" font-size="10" fill="#333" text-anchor="middle">Namespaces</text>
<rect x="625" y="530" width="130" height="20" rx="3" ry="3" fill="#ffb74d" stroke="#ff9800" stroke-width="1"/>
<text x="690" y="544" font-family="Arial" font-size="10" fill="#333" text-anchor="middle">Cgroups</text>
<rect x="625" y="550" width="130" height="20" rx="3" ry="3" fill="#ffb74d" stroke="#ff9800" stroke-width="1"/>
<text x="690" y="564" font-family="Arial" font-size="10" fill="#333" text-anchor="middle">Capabilities</text>
<!-- Dockerfile -->
<rect x="150" y="290" width="160" height="30" rx="5" ry="5" fill="#fff" stroke="#555" stroke-width="2"/>
<text x="230" y="310" font-family="Arial" font-size="14" fill="#333" text-anchor="middle">Dockerfile</text>
<!-- Weitere Dateien -->
<rect x="610" y="290" width="160" height="30" rx="5" ry="5" fill="#fff" stroke="#555" stroke-width="2"/>
<text x="690" y="310" font-family="Arial" font-size="14" fill="#333" text-anchor="middle">docker-compose.yml</text>
<!-- Verbindungen -->
<!-- Client zu Daemon -->
<path d="M250 220 L350 220" stroke="#555" stroke-width="2" fill="none"/>
<polygon points="345,215 350,220 345,225" fill="#555"/>
<text x="300" y="212" font-family="Arial" font-size="10" fill="#555" text-anchor="middle">REST API</text>
<!-- Daemon zu Registry -->
<path d="M510 220 L620 220" stroke="#555" stroke-width="2" fill="none"/>
<polygon points="615,215 620,220 615,225" fill="#555"/>
<text x="565" y="212" font-family="Arial" font-size="10" fill="#555" text-anchor="middle">pull/push</text>
<!-- Daemon zu Images -->
<path d="M430 280 L230 325" stroke="#555" stroke-width="2" fill="none"/>
<polygon points="235,320 230,325 225,320" fill="#555"/>
<text x="320" y="290" font-family="Arial" font-size="10" fill="#555" text-anchor="middle">verwaltet</text>
<!-- Images zu Container -->
<path d="M310 380 L380 380" stroke="#555" stroke-width="2" fill="none"/>
<polygon points="375,375 380,380 375,385" fill="#555"/>
<text x="345" y="370" font-family="Arial" font-size="10" fill="#555" text-anchor="middle">erzeugt</text>
<!-- Compose zu Container -->
<path d="M610 380 L540 380" stroke="#555" stroke-width="2" fill="none"/>
<polygon points="545,375 540,380 545,385" fill="#555"/>
<text x="575" y="370" font-family="Arial" font-size="10" fill="#555" text-anchor="middle">orchestriert</text>
<!-- Container zu Volumes -->
<path d="M400 435 L230 480" stroke="#555" stroke-width="2" fill="none"/>
<polygon points="235,475 230,480 225,475" fill="#555"/>
<text x="300" y="460" font-family="Arial" font-size="10" fill="#555" text-anchor="middle">nutzt</text>
<!-- Container zu Networks -->
<path d="M460 435 L460 480" stroke="#555" stroke-width="2" fill="none"/>
<polygon points="455,475 460,480 465,475" fill="#555"/>
<text x="472" y="460" font-family="Arial" font-size="10" fill="#555" text-anchor="middle">kommuniziert</text>
<!-- Container zu Sicherheit -->
<path d="M520 435 L650 480" stroke="#555" stroke-width="2" fill="none"/>
<polygon points="645,475 650,480 655,475" fill="#555"/>
<text x="600" y="460" font-family="Arial" font-size="10" fill="#555" text-anchor="middle">isoliert</text>
<!-- Dockerfile zu Images -->
<path d="M230 320 L230 325" stroke="#555" stroke-width="2" fill="none"/>
<polygon points="225,320 230,325 235,320" fill="#555"/>
<text x="250" y="323" font-family="Arial" font-size="10" fill="#555" text-anchor="middle">baut</text>
<!-- Compose-File zu Docker Compose -->
<path d="M690 320 L690 325" stroke="#555" stroke-width="2" fill="none"/>
<polygon points="685,320 690,325 695,320" fill="#555"/>
<text x="710" y="323" font-family="Arial" font-size="10" fill="#555" text-anchor="middle">konfiguriert</text>
<!-- Multi-Stage Building -->
<g transform="translate(90, 600)">
<rect width="300" height="25" rx="5" ry="5" fill="#e0e0e0" stroke="#555" stroke-width="1"/>
<text x="150" y="17" font-family="Arial" font-size="12" fill="#333" text-anchor="middle">Multi-Stage Build Prozess</text>
<rect x="10" y="30" width="80" height="20" rx="3" ry="3" fill="#d4d4d4" stroke="#555" stroke-width="1"/>
<text x="50" y="44" font-family="Arial" font-size="10" fill="#333" text-anchor="middle">Build Stage</text>
<rect x="110" y="30" width="80" height="20" rx="3" ry="3" fill="#d4d4d4" stroke="#555" stroke-width="1"/>
<text x="150" y="44" font-family="Arial" font-size="10" fill="#333" text-anchor="middle">Test Stage</text>
<rect x="210" y="30" width="80" height="20" rx="3" ry="3" fill="#d4d4d4" stroke="#555" stroke-width="1"/>
<text x="250" y="44" font-family="Arial" font-size="10" fill="#333" text-anchor="middle">Prod Stage</text>
<path d="M90 40 L110 40" stroke="#555" stroke-width="1" fill="none"/>
<polygon points="105,37 110,40 105,43" fill="#555"/>
<path d="M190 40 L210 40" stroke="#555" stroke-width="1" fill="none"/>
<polygon points="205,37 210,40 205,43" fill="#555"/>
</g>
<!-- Host vs Container Visualisierung -->
<g transform="translate(450, 600)">
<rect width="350" height="25" rx="5" ry="5" fill="#e0e0e0" stroke="#555" stroke-width="1"/>
<text x="175" y="17" font-family="Arial" font-size="12" fill="#333" text-anchor="middle">Container vs. VM Architektur</text>
<!-- Container Stack -->
<rect x="20" y="30" width="120" height="15" rx="2" ry="2" fill="#2496ed" stroke="#555" stroke-width="1"/>
<text x="80" y="41" font-family="Arial" font-size="9" fill="white" text-anchor="middle">Container</text>
<rect x="20" y="45" width="120" height="15" rx="2" ry="2" fill="#2496ed" stroke="#555" stroke-width="1"/>
<text x="80" y="56" font-family="Arial" font-size="9" fill="white" text-anchor="middle">Container</text>
<rect x="20" y="60" width="120" height="15" rx="2" ry="2" fill="#1a75bb" stroke="#555" stroke-width="1"/>
<text x="80" y="71" font-family="Arial" font-size="9" fill="white" text-anchor="middle">Docker Engine</text>
<rect x="20" y="75" width="120" height="15" rx="2" ry="2" fill="#ccc" stroke="#555" stroke-width="1"/>
<text x="80" y="86" font-family="Arial" font-size="9" fill="#333" text-anchor="middle">Host OS Kernel</text>
<rect x="20" y="90" width="120" height="15" rx="2" ry="2" fill="#aaa" stroke="#555" stroke-width="1"/>
<text x="80" y="101" font-family="Arial" font-size="9" fill="#333" text-anchor="middle">Infrastruktur</text>
<!-- VM Stack -->
<rect x="210" y="30" width="120" height="15" rx="2" ry="2" fill="#85c47c" stroke="#555" stroke-width="1"/>
<text x="270" y="41" font-family="Arial" font-size="9" fill="#333" text-anchor="middle">App</text>
<rect x="210" y="45" width="120" height="15" rx="2" ry="2" fill="#85c47c" stroke="#555" stroke-width="1"/>
<text x="270" y="56" font-family="Arial" font-size="9" fill="#333" text-anchor="middle">Gast OS</text>
<rect x="210" y="60" width="120" height="15" rx="2" ry="2" fill="#76b96c" stroke="#555" stroke-width="1"/>
<text x="270" y="71" font-family="Arial" font-size="9" fill="#333" text-anchor="middle">Hypervisor</text>
<rect x="210" y="75" width="120" height="15" rx="2" ry="2" fill="#ccc" stroke="#555" stroke-width="1"/>
<text x="270" y="86" font-family="Arial" font-size="9" fill="#333" text-anchor="middle">Host OS</text>
<rect x="210" y="90" width="120" height="15" rx="2" ry="2" fill="#aaa" stroke="#555" stroke-width="1"/>
<text x="270" y="101" font-family="Arial" font-size="9" fill="#333" text-anchor="middle">Infrastruktur</text>
<!-- Labels -->
<text x="80" y="115" font-family="Arial" font-size="10" font-weight="bold" fill="#333" text-anchor="middle">Docker Container</text>
<text x="270" y="115" font-family="Arial" font-size="10" font-weight="bold" fill="#333" text-anchor="middle">Virtuelle Maschine</text>
</g>
<!-- Titel -->
<text x="450" y="50" font-family="Arial" font-size="24" font-weight="bold" fill="#333" text-anchor="middle">Docker Kernkonzepte - Detaillierte Übersicht</text>
<!-- Legende -->
<rect x="780" y="640" width="15" height="10" fill="#2496ed"/>
<text x="800" y="649" font-family="Arial" font-size="10" fill="#333" text-anchor="start">Docker Core</text>
<rect x="780" y="655" width="15" height="10" fill="#3fe0d0"/>
<text x="800" y="664" font-family="Arial" font-size="10" fill="#333" text-anchor="start">Container/Images</text>
<rect x="780" y="670" width="15" height="10" fill="#ffcc80"/>
<text x="800" y="679" font-family="Arial" font-size="10" fill="#333" text-anchor="start">Infrastruktur</text>
<rect x="780" y="685" width="15" height="10" fill="#e0e0e0"/>
<text x="800" y="694" font-family="Arial" font-size="10" fill="#333" text-anchor="start">Konzepte</text>
</svg>