Docker und Co.: Ab in den Container
Mit Zeit, Zuwendung und Containern lassen sich ausgemusterte Computer als Spielwiese oder Testumgebung wieder rehabilitieren.

Es passiert oft, dass man mal eben ein Tool oder einen Dienst ausprobieren möchte. Besonders bei der Entwicklung von Software ist man sich nicht von Anfang an sicher, welche Technologie eingesetzt werden soll. Die Installation auf dem Arbeits-PC ist aber nicht immer möglich (weil vielleicht das falsche Betriebssystem installiert ist) oder gewünscht (weil nach der Deinstallation manchmal Leichen zurückbleiben).
- Docker und Co.: Ab in den Container
- Stolpersteine bei Containern
- Die wichtigsten Images für Docker
Da ist der Griff zum verstaubten Computer aus dem Kellerregal der nächste logische Schritt. Aber die Bastler-Schreibtische sind häufig einfach zu klein, um neben diversen Mikrocontrollern, Experimentierboards und Schütten mit Bauteilen noch einen Rechner aufzubauen.
Der KVM-Switch, der mit doppelseitigem Klebeband an der Unterseite des Tisches angebracht ist, unterstützt nur HDMI, ein Adapter ist nicht in Sicht. Also wird noch ein Monitor gebraucht und neben dem Platz werden plötzlich auch die Steckdosen zur Mangelware. Und den ganzen Aufwand betreibt man, nur um schnell einen Datenbankserver, Webserver, Message Queue ... aufzusetzen.
Aber es geht auch anders. Mit nur wenig Aufwand kann ein System aufgesetzt werden, welches mittels Container enorme Flexibilität und Möglichkeiten bietet, verschiedenste Dienste innerhalb weniger Minuten bereitzustellen.
Container - ein kleiner Exkurs
Container sind eine Virtualisierung. Anders als bei virtuellen Maschinen (VM) wird bei Containern nur das Betriebssystem virtualisiert und sie teilen sich Hardware und Kernel des Computers, auf dem sie ausgeführt werden, mit anderen Containern. Sie werden verwendet, um Prozesse und Anwendungen isoliert auf einem Host auszuführen. Da die Anwendungen unabhängig von den anderen Diensten laufen, gibt es auch keine Probleme mit Abhängigkeiten oder Versionskonflikten.
In der Regel laufen die Container unter Linux. Es ist zwar möglich, sie unter Windows auszuführen, jedoch nur mit Einschränkungen. Die Container müssen auch für Windows erstellt sein.
Der Vollständigkeit halber soll noch das Windows Subsystem for Linux (WSL) erwähnt sein. WSL stellt eine Art VM unter Windows dar, in der ein Linux-System bereitgestellt wird. So können Linux-Container unter Windows ausgeführt werden. Microsoft rät aber von einem Einsatz auf Produktivsystemen ab. Mit .NET Core oder .NET 5 (oder höher) hat Microsoft eine Möglichkeit geschaffen, .NET-Applikationen unter Linux auszuführen. Am einfachsten werden diese Anwendungen in einen Container gepackt.
Der Großteil der Containertools arbeitet mit Images. Diese werden einmal, oftmals automatisiert, erstellt und können dann verteilt oder bereitgestellt werden.
An Docker führt kein Weg vorbei
Docker ist eine Technologie, die zur Erstellung und zum Betrieb von Containern verwendet werden kann. Die Vereinfachung des Erstellungsprozesses ist einer der größten Vorteile. Docker stellt eine API zur Verfügung, über welche die Container verwaltet werden. Docker CLI ermöglicht das Ansprechen der API über die Kommandozeile. Als Virtualisierung kommt containerd zum Einsatz.
Die Images werden in Registries zur Verfügung gestellt. Im öffentlichen Docker Hub stehen aktuell über acht Millionen Images zur Verfügung. Da es sich aber um eine öffentliche und kostenlose Registry handelt, liegen hier viele halbfertige oder nicht lauffähige Images. Dennoch lohnt es sich, mal reinzuschauen, um sich einen Überblick zu verschaffen. Zum Ausführen des Images in einem Container ist die Dokumentation meistens ebenfalls hier zu finden.
Um einen Docker-Host aufzusetzen, reicht ein Rechner mit Linux, zum Beispiel Ubuntu. Da die grafische Oberfläche nicht benötigt wird, halten sich die Systemanforderungen in Grenzen. Nach der Installation des Betriebssystems aktiviert man SSH und vergibt eine fixe IP-Adresse, um sich remote mit dem Host verbinden zu können. Und ab mit der Gurke zurück in den Keller: Strom und Netzwerk anschließen und schon ist wieder Platz auf dem Schreibtisch.
Jetzt verbindet man sich über SSH - beispielsweise über die Windows-Eingabeaufforderung - mit dem Host. Nach dem obligatorischen Aktualisieren des apt Package Index fehlt nur ein Kommando, um die Docker-Engine zu installieren.
$ sudo apt-get update $ sudo apt-get install docker-ce docker-ce-cli containerd.io
Sofern keine Fehler auftreten, war's das auch schon und die Docker-Engine, das Docker CLI (Command Line Interface) und die Container Runtime stehen zur Verfügung. Um zu überprüfen, ob die Installation erfolgreich war, kann man - wie sollte es auch anders sein - den Hello-World-Container laufen lassen.
$ sudo docker run hello-world
Hello World! im Container
Dieser Befehl lädt das Hello-World-Image vom Docker Hub herunter und startet den Container. Beim Hello-World-Container handelt es sich um ein recht primitives Exemplar. Umfangreichere Dienste wie eine MySQL-Datenbank erwarten mehr Parameter wie Port und Root-Passwort für die Datenbank.
$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
Der Doppelpunkt trennt den Namen des Images vom Tag. Dieser Tag kann zur Beschreibung der Version des Images verwendet werden. So hat es sich eingebürgert, dass die aktuelle Version mit dem Tag latest gekennzeichnet wird. Erstellt man selbst Containerimages, ist es ratsam, verschiedene Tags zu verwenden. Hat man mehrere Instanzen von Docker laufen, etwa eine Testumgebung und eine Produktivumgebung, kann über die Tags definiert werden, welches Image in welcher Umgebung ausgeführt wird.
Das Kommando docker run erstellt den Container basierend auf dem angegebenen Image und führt ihn aus. Ist der Container bereits erstellt, kann er mit docker start gestartet werden.
Es gibt allerdings einige Dinge, die wir beachten sollten.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Stolpersteine bei Containern |
Deswegen nutze ich unRAID. Da gibt es eine Community, die massig Container...
Und auf welchen Fakten basiert deine Annahme?
Erst mal allgemein finde ich es toll das über das Thema gesprochen wird. Ist wirklich...
Fast: Images bauen kann Podman nicht, das übernimmt Buildah. In den meisten Fällen...