Container für Serverdienste via Docker erlauben einem einzigen System den Betrieb von unterschiedlichen Serverkomponenten, die sich gegenseitig nicht die Quere kommen und deren Softwareversionen nicht mit dem Hostsystem in Konflikt geraten. Es ist ein Konzept, das jenem von virtuellen Maschinen angelehnt ist, das mit Containerdiensten aber mit weit weniger Aufwand auskommt. Denn statt eines kompletten Betriebssystems virtualisiert Docker nur Teile davon.
Der Clou ist, dass Docker die vorhandenen Fähigkeiten eines Linux-Kernels nutzt, um den Diensten die notwendige Betriebssystemumgebung zu stellen, diese dabei aber strikt zu isolieren. Control Groups (Cgroups) limitieren Speicher, CPU-Zyklen sowie I/O-Leistung für einen Prozess und Kernel-Namespaces trennen Prozesse voneinander ab.
Ein weiterer Pluspunkt ist, dass man bei Docker nicht erst langwierig ein Gast-Betriebssystem zu installieren braucht. Denn Docker macht Systemimages der verbreiteten aktuellen Linux-Distributionen über ein Onlineverzeichnis verfügbar.
Grafische Oberfläche für Docker
Was läuft hier? Docker- Desktop liefert eine Administrationsoberfläche für laufende Container, eine Ressourcenverwaltung und die Anbindung an Docker Hub, um vorbereitete Images zu laden.
IDG
Mit Docker-Desktop für Linux meldet sich jenes Containertool zurück, das die Begeisterung um effiziente und isolierte Container auf Linux-Systemen entfacht hatte. Docker-Desktop ist ein grafisches Verwaltungswerkzeug für Docker-Container. Auch wenn das Terminal der maßgebliche Part für Docker-Befehle bleibt, so fasst es doch alles übersichtlich unter einem Dach mit vielen Hilfestellungen zusammen.
Docker-Desktop erschien vergleichsweise spät für Linux – wohl aufgrund der Zielgruppe, die mit der Arbeit in der Shell traditionell wenig Probleme hat. Deshalb war Docker-Desktop schon seit 2018 in Mac-OS und Windows verfügbar, um dort einen neuen Anwenderkreis zu erschließen. Zielgruppe sind jene Anwender, die Docker für Testsysteme und für oft schon vorgefertigte Serverdienste benötigen, dabei aber niedrigere Einstiegshürden und visuelle Administrationshilfen schätzen.
Wer Docker schon kennt, wird auch gleich Unterschiede der Herangehensweise der Desktopausgabe zur traditionellen Containerverwaltung per Kommandozeile bemerken: Docker-Desktop setzt nicht direkt auf dem Kernel des laufenden Linux-Systems auf, sondern startet Containerinstanzen in einer leichtgewichtigen VM. Dies ist von den Versionen für Windows und Mac-OS übernommen, die eine Linux-Virtualisierung brauchen.
In Docker-Desktop ist der Zugriff auf die Netzwerkschnittstelle und das Dateisystem des Hostsystems schon vorbereitet. Es gibt aber auch in der Lizenzierung Unterschiede: während Docker selbst Open Source ist und unter der Apache License steht, handelt es sich bei Docker-Desktop um Freeware für den persönlichen Gebrauch und für mittelständische Firmen bis 250 Mitarbeiten. Größere Unternehmen müssen Docker-Desktop kostenpflichtig abonnieren.
Installation per Script und DEB-Paket
Aufgrund der unterschiedlichen Lizenzierung ist Docker-Desktop von der Runtime getrennt und steht als separates Paket bereit. Er ist als DEB für Debian/Ubuntu sowie als RPM für Fedora verfügbar. Außerdem gibt es für Arch Linux, Manjaro und andere Derivate ein experimentelles Paket. Hier geht es aber vornehmlich um die Installation von Docker-Desktop in Debian/Ubuntu:
Docker-Desktop setzt auf der Docker-Runtime (Engine) auf, die zuerst in der neusten Version installiert sein muss. Die englischsprachige Anleitung unter https://docs.docker.com/desktop/install/linux-install zeigt die Schritte. In Debian/Ubuntu erledigt diese ein Installations-Script, welches der Befehl
wget -O get-docker.sh
https://get.docker.com
auf den Rechner holt. Der Befehl sudo sh get-docker.sh führt das Script aus, richtet die Docker-Runtime ein und setzt sie in Gang.
Weiter geht es mit der Installation des eigentlichen Docker-Desktop, das als DEB-Paket unter https://docs.docker.com/desktop/install/linux-install zum Download bereitliegt (413 MB). Es wird mit dem Aufruf
sudo apt install ./docker-desktop-*.deb
im Downloadverzeichnis installiert und holt dabei noch einige weitere benötigte Pakete aus dem Standard-Repository der Distribution. Anschließend aktiviert der Befehl
systemctl –user enable dockerdesktop
den Docker-Desktop als Benutzerdienst. Es ist dann ein Neustart des Systems empfehlenswert, der sicherstellt, dass alle Docker-Komponenten laufen.
Jetzt ist das Docker-Programm einsatzbereit und wartet im Anwendungsmenü auf den ersten Aufruf, der nach der Anzeige der Lizenzbedingungen das mehrteilige Programmfenster anzeigt. Oben rechts ist ein Anmeldebutton zu sehen, um sich mit einem bestehenden Konto an Docker Hub anzumelden. Dies ist zur Verwendung der Software nicht notwendig, aber nützlich, um auf bestehende Docker-Images zuzugreifen.
Blick auf das Tutorial
Zum Einstieg bietet Docker-Desktop ein englischsprachiges Tutorial an. Es richtet schrittweise nach Anleitung einen Beispiel-Container ein, welcher auf dem lokalen Rechner einen Webserver mit einem HTML-Handbuch ausführt, das im Webbrowser aufrufbar ist. Zum Kennenlernen der Oberfläche, des integrierten Docker-Terminals und der Administrationshilfen ist das angebotene Tutorial ein guter Einstieg:
Der erste Schritt ist mit „Clone“ das Herunterladen eines Repositorys für den ersten Beispiel-Container. Die angezeigten Befehle werden mit einem Pfeil in das integrierte Terminal rechts übernommen und mit Eingabetaste ausgeführt.Danach erfolgt der Build-Befehl, der auch wieder ins Terminal übernommen wird und aus den heruntergeladenen Anweisungen das erste Docker-Image baut.„Run“ führt dieses Beispiel dann als Docker-Container aus. Durch die automatische Netzwerkanbindung von Docker-Desktop ist der Webserver im Browser über die Adresse „localhost:80“ erreichbar. Die Übersicht im Programmfenster zeigt unter „Containers“ die laufende Instanz an und erlaubt deren Verwaltung.
Über das Zahnrad-Symbol rechts oben sind die Einstellungen für Docker zugänglich Die „Ressourcen“ legen fest, wie viele Prozessorkerne, wie viel RAM, Swap und Festplattenplatz allen Docker-Instanzen gemeinsam zur Verfügung stehen soll. „File Sharing“ ermöglicht ein Hinzufügen von Verzeichnissen aus dem Hostsystem zu Docker-Containern, um reale Ordner mit „mount“ einzubinden.
Docker-Desktop: Pro und Contra
Auch wenn die verwendete Containertechnik der kommandozeilenorientierten Docker-Runtime und Docker-Desktop identisch ist, gibt es doch einige Unterschiede mit ihren jeweiligen Vor- und Nachteilen.
+ Docker-Desktop erleichtert den Einstieg mit Hilfen und eigener Oberfläche
+ Visualisierung von Containern vereinfacht die Administration
+ Vorbereiteter Zugriff auf Ressourcen wie Netzwerk und Host-Dateisystem
– Docker-Desktop hat höhere Hardwareanforderungen
– Container werden von Docker-Desktop unter Qemu ausgeführt
– Die Lizenz von Docker-Desktop ist nicht Open Source (Freeware)
Siehe auch:
SSH: So klappt die Fernwartung mit Linux
Personal Software