Nun habe ich mich erfolgreich Jahre um das Thema gedrückt, aber spätestens mit Univention UCS, Nextcloud und dem Thema KI (Ollama in Verbindung mit Docker Socket Proxy) musste ich mich näher damit beschäftigen und ich gebe zu: Hätte ich mich früher mit beschäftigen sollen. Sei es drum. ^^
Was ist Docker?
Docker ist eine Container-Plattform. Sie ermöglicht es, Anwendungen zusammen mit allen benötigten Abhängigkeiten (Bibliotheken, Laufzeitumgebung und Konfigurationen) in Container zu verpacken und überall identisch auszuführen.
Im Gegensatz zu virtuellen Maschinen enthalten Container kein eigenes Betriebssystem mit eigenem Kernel, sondern nutzen den Kernel des Host-Systems. Der Container bringt lediglich den notwendigen Userspace für die Anwendung mit.
Ein großer Vorteil von Docker-Containern ist, dass sie sich einfach auf andere Hostsysteme übertragen lassen und weitgehend plattformunabhängig sind. Ein Container, den du unter Linux gebaut hast, kann auch unter Windows oder Mac laufen. Auf diesen Systemen sorgt Docker dabei automatisch für eine kleine Linux-VM, die den benötigten Kernel bereitstellt, sodass kein zusätzlicher Konvertierungsaufwand nötig ist.
Wichtige Ziele:
Ein Container ist keine virtuelle Maschine. Er teilt sich den Kernel des Host-Systems, ist dadurch deutlich leichter, schneller startbar und ressourcenschonender.