<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.ixheim.de/index.php?action=history&amp;feed=atom&amp;title=Definition_von_Containern_und_deren_Architektur</id>
	<title>Definition von Containern und deren Architektur - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ixheim.de/index.php?action=history&amp;feed=atom&amp;title=Definition_von_Containern_und_deren_Architektur"/>
	<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Definition_von_Containern_und_deren_Architektur&amp;action=history"/>
	<updated>2026-06-29T06:02:40Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Xinux Wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.ixheim.de/index.php?title=Definition_von_Containern_und_deren_Architektur&amp;diff=52593&amp;oldid=prev</id>
		<title>Robin.will: /* Grundlagen */</title>
		<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Definition_von_Containern_und_deren_Architektur&amp;diff=52593&amp;oldid=prev"/>
		<updated>2024-04-03T09:43:17Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Grundlagen&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 3. April 2024, 09:43 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l20&quot; &gt;Zeile 20:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 20:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Es kann allerdings auch mittels Hyper-V oder VirtualBox auf Windows und HyperKit  oder VirtualBox auf macOS verwendet werden.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Es kann allerdings auch mittels Hyper-V oder VirtualBox auf Windows und HyperKit  oder VirtualBox auf macOS verwendet werden.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Die Ressourcentrennung alleine mit den Docker zugrunde liegenden Techniken wie Namespaces und Cgroups gilt nicht als völlig sicher.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Die Ressourcentrennung alleine mit den Docker zugrunde liegenden Techniken wie Namespaces und Cgroups gilt nicht als völlig sicher.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Mir &lt;/del&gt;Red Hat Unterstützung wurde eine sicherheitsrelevante Kernel-Erweiterung für SELinux implementiert&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Mit &lt;/ins&gt;Red Hat Unterstützung wurde eine sicherheitsrelevante Kernel-Erweiterung für SELinux implementiert&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Diese sichert die Container auf der Ebene des Host-Systems zusätzlich ab.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Diese sichert die Container auf der Ebene des Host-Systems zusätzlich ab.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Robin.will</name></author>
	</entry>
	<entry>
		<id>https://wiki.ixheim.de/index.php?title=Definition_von_Containern_und_deren_Architektur&amp;diff=52592&amp;oldid=prev</id>
		<title>Robin.will: Die Seite wurde neu angelegt: „=Grundlegendes= *Eine Freie Software zur Isolierung von Anwendungen mit Hilfe von Containervirtualisierung. *Es vereinfacht die Bereitstellung von Anwendungen,…“</title>
		<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Definition_von_Containern_und_deren_Architektur&amp;diff=52592&amp;oldid=prev"/>
		<updated>2024-04-03T09:41:19Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „=Grundlegendes= *Eine Freie Software zur Isolierung von Anwendungen mit Hilfe von Containervirtualisierung. *Es vereinfacht die Bereitstellung von Anwendungen,…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=Grundlegendes=&lt;br /&gt;
*Eine Freie Software zur Isolierung von Anwendungen mit Hilfe von Containervirtualisierung.&lt;br /&gt;
*Es vereinfacht die Bereitstellung von Anwendungen, weil sich Container, die alle nötigen Pakete enthalten, leicht als Dateien transportieren und installieren lassen.&lt;br /&gt;
*Container gewährleisten die Trennung und Verwaltung der auf einem Rechner genutzten Ressourcen.&lt;br /&gt;
*Das umfasst: Code, Laufzeitmodul, Systemwerkzeuge, Systembibliotheken – alles was auf einem Rechner installiert werden kann.&lt;br /&gt;
*Es können mehrere Prozesse isoliert und damit unabhängig voneinander ausgeführt werden.&lt;br /&gt;
*Dies ermöglicht eine einfaches Aktualisierung des Containers ohne andere Container zu gefährden. &lt;br /&gt;
*In der idealen Welt läuft in einem Docker Container nur ein Prozess. &lt;br /&gt;
*Wenn ein weitere Prozess benötigt wird, sollte dieser in ein anderen Container ausgelagert werden.&lt;br /&gt;
*Dies wird aber nicht immer eingehalten.&lt;br /&gt;
{{#drawio:docker-vs-vms}}&lt;br /&gt;
&lt;br /&gt;
=Grundlagen=&lt;br /&gt;
*Es basiert auf Linux-Techniken wie Cgroups und Namespaces, um Container zu realisieren.&lt;br /&gt;
*Anfänglich wurde  die LXC-Schnittstelle des Linux-Kernels verwendet&lt;br /&gt;
*Die Docker-Entwickler haben mittlerweile eine eigene Programmierschnittstelle namens libcontainer entwickelt&lt;br /&gt;
*Diese steht auch anderen Projekten zur Verfügung. &lt;br /&gt;
*Als Speicher-Backend verwendet Docker das Overlay-Dateisystem &amp;quot;aufs&amp;quot;, ab Version 0.8 unterstützt die Software aber auch &amp;quot;btrfs&amp;quot;.&lt;br /&gt;
*Prinzipiell ist Docker auf die Virtualisierung mit Linux ausgerichtet.&lt;br /&gt;
*Es kann allerdings auch mittels Hyper-V oder VirtualBox auf Windows und HyperKit  oder VirtualBox auf macOS verwendet werden.&lt;br /&gt;
*Die Ressourcentrennung alleine mit den Docker zugrunde liegenden Techniken wie Namespaces und Cgroups gilt nicht als völlig sicher.&lt;br /&gt;
*Mir Red Hat Unterstützung wurde eine sicherheitsrelevante Kernel-Erweiterung für SELinux implementiert&lt;br /&gt;
*Diese sichert die Container auf der Ebene des Host-Systems zusätzlich ab.&lt;br /&gt;
&lt;br /&gt;
=Vorteile=&lt;br /&gt;
*Skalibarkeit&lt;br /&gt;
*Isoliert&lt;br /&gt;
*Fertige Systeme&lt;br /&gt;
*Gute Updatefähigkeit&lt;br /&gt;
=Begriffe=&lt;br /&gt;
==Image==&lt;br /&gt;
*Ein Speicherabbild  eines Containers. &lt;br /&gt;
*Das Image selbst besteht aus mehreren Layern, die schreibgeschützt sind und somit nicht verändert werden können.&lt;br /&gt;
*Ein Image ist portabel, kann in Repositories  gespeichert und mit anderen Nutzern geteilt werden.&lt;br /&gt;
*Aus einem Image können immer mehrere Container gestartet werden.&lt;br /&gt;
==Container==&lt;br /&gt;
*Aktive Instanz eines Images bezeichnet.&lt;br /&gt;
*Er wird also gerade ausgeführt und ist beschäftigt.&lt;br /&gt;
*Sobald der Container kein Programm mehr ausführt, wird der Container automatisch beendet.&lt;br /&gt;
==Layer==&lt;br /&gt;
*Ein Layer ist Teil eines Images und enthält einen Befehl oder eine Datei, die dem Image hinzugefügt wurde.&lt;br /&gt;
*Anhand der Layer kann die ganze Historie des Images nachvollzogen werden.&lt;br /&gt;
==Dockerfile==&lt;br /&gt;
*Eine Textdatei, die mit verschiedenen Befehlen ein Image beschreibt.&lt;br /&gt;
*Diese werden bei der Ausführung abgearbeitet und für jeden Befehl wird ein einzelner Layer angelegt.&lt;br /&gt;
==Repository==&lt;br /&gt;
*Ein Repository ist ein Satz gleichnamiger Images mit verschiedenen Tags, zumeist Versionen.&lt;br /&gt;
==Registry==&lt;br /&gt;
*Eine Registry, wie zum Beispiel ''Docker Hub'' oder ''Artifactory'', dient der Verwaltung von Repositories.&lt;br /&gt;
==libcontainer==&lt;br /&gt;
*Eine Schnittstelle zu den Grundfunktionen von Docker.&lt;br /&gt;
==libswarm==&lt;br /&gt;
*Eine Schnittstelle, um Docker-Container zu steuern.&lt;br /&gt;
==libchan==&lt;br /&gt;
*Ermöglicht eine einfache („light weighted“) Kommunikation zwischen Prozessteilen und Prozessen.&lt;br /&gt;
&lt;br /&gt;
=Zyklen=&lt;br /&gt;
{{#drawio:docker-1}}&lt;br /&gt;
&lt;br /&gt;
=Handling=&lt;br /&gt;
==Portforwarding==&lt;br /&gt;
*Der Docker Host nimmt die Anfragen auf den Ports entgegen.&lt;br /&gt;
*Er leitet sie zu dem entsprechenden Container.&lt;br /&gt;
*Solange man keinen Reverse Proxy einrichtet kann pro Host Port nur ein Container bedient werden.&lt;br /&gt;
{{#drawio:docker-2}}&lt;br /&gt;
&lt;br /&gt;
==Volumes==&lt;br /&gt;
*Die Daten in einem Container sind nur solange vorhanden wie der Container existiert.&lt;br /&gt;
*Bei einem Update würden die Daten verloren gehen.&lt;br /&gt;
*Man lagert Daten die die wichtig sind auf das Dateisystem des Docker Host aus.&lt;br /&gt;
*So hat man immer die richtige Datensätze.&lt;br /&gt;
{{#drawio:docker-3}}&lt;br /&gt;
&lt;br /&gt;
=Vorgang bei der in Betriebnahme=&lt;br /&gt;
*Suchen eines passenden Docker Image&lt;br /&gt;
*Dokumentation lesen&lt;br /&gt;
*Docker Image runter laden und mit entsprechenden Optionen als Container laufen lassen&lt;br /&gt;
&lt;br /&gt;
=Was ist zu beachten?=&lt;br /&gt;
*Wenn der Container gelöscht oder geupdated wird, gehen die Daten verloren.&lt;br /&gt;
*Wichtiger dynamische Daten sollte man ausserhalb des Containers &amp;quot;legen&amp;quot;.&lt;br /&gt;
**Daten werden auf das Hostssystem gelegt, bei Docker Swarm auf ein NFS Share&lt;br /&gt;
*Ports (Schnittstellen) müssen von aussen ereichbar sein.&lt;br /&gt;
**Möglichkeit 1: Portforwarding&lt;br /&gt;
**Möglichkeit 2: Traefik&lt;br /&gt;
=Begriffe=&lt;br /&gt;
*Host&lt;br /&gt;
Rechner auf dem die Docker Container laufen.&lt;br /&gt;
*Image&lt;br /&gt;
Ein auf einen Verwendungszweck zu geschnittene &amp;quot;Softwarepaket&amp;quot; welches man in der&lt;br /&gt;
Regel von Docker Hub runter lädt.&lt;br /&gt;
*Container&lt;br /&gt;
Wenn man ein Image &amp;quot;startet&amp;quot; wirde es zu einem Container. Man kann ein Image auch 2 man &amp;quot;starten&amp;quot; dann werden 2 Container aus dem selben Image. Vergleichbar mit Variable und Instanz der Progammiersprachen.&lt;br /&gt;
*Volumen&lt;br /&gt;
Daten die man ausserhalb des Container legt und die bei einem Container Update erhalten bleiben sollen.&lt;br /&gt;
*Ports&lt;br /&gt;
Schnittstellen zu den Prozessen. Hier gibt es den Port im Container und den auf dem Host. Diese müssen miteinander irgendwie &amp;quot;verbunden&amp;quot; werden.&lt;/div&gt;</summary>
		<author><name>Robin.will</name></author>
	</entry>
</feed>