Docker und Co.: Ab in den Container

Mit Zeit, Zuwendung und Containern lassen sich ausgemusterte Computer als Spielwiese oder Testumgebung wieder rehabilitieren.

Eine Anleitung von Markus Renezeder veröffentlicht am
Mit Docker können alte PCs wieder einen Zweck erfüllen.
Mit Docker können alte PCs wieder einen Zweck erfüllen. (Bild: Pixabay.com/Montage: Golem.de/Pixabay License)

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).

Inhalt:
  1. Docker und Co.: Ab in den Container
  2. Stolpersteine bei Containern
  3. 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

Stellenmarkt
  1. Consultant SAP HCM (m/w/d)
    über duerenhoff GmbH, Großraum Bielefeld (Home-Office)
  2. IT-Mitarbeiter (m/w/d) First Level Support
    Knappschaft Kliniken Service GmbH, Bochum
Detailsuche

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.

Skalierbare Container-Infrastrukturen: Das Handbuch für Admins & DevOps-Teams, inkl. Docker und Container-Orchestrierung mit Kubernetes und OpenShift

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.

  1. $ sudo apt-get update
  2. $ 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.

  1. $ 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.

  1. $ 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.

  • Portrainer-Interface (Bild: Portrainer)
  • Wir können das Hello-World-Programm in Docker ausführen. (Bild: Markus Renezeder)
Wir können das Hello-World-Programm in Docker ausführen. (Bild: Markus Renezeder)

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.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
Stolpersteine bei Containern 
  1. 1
  2. 2
  3. 3
  4.  


mgutt 09. Feb 2022

Deswegen nutze ich unRAID. Da gibt es eine Community, die massig Container...

Schattenwerk 08. Feb 2022

Und auf welchen Fakten basiert deine Annahme?

GwhE 08. Feb 2022

Erst mal allgemein finde ich es toll das über das Thema gesprochen wird. Ist wirklich...

Cerdo 08. Feb 2022

Fast: Images bauen kann Podman nicht, das übernimmt Buildah. In den meisten Fällen...



Aktuell auf der Startseite von Golem.de
Ukrainekrieg
Erster Einsatz einer US-Kamikazedrohne dokumentiert

Eine Switchblade-Drohne hat offenbar einen russischen Panzer getroffen. Dessen Besatzung soll sich auf dem Turm mit Alkohol vergnügt haben.

Ukrainekrieg: Erster Einsatz einer US-Kamikazedrohne dokumentiert
Artikel
  1. Deutsche Bahn: 9-Euro-Ticket gilt nicht in allen Nahverkehrszügen
    Deutsche Bahn
    9-Euro-Ticket gilt nicht in allen Nahverkehrszügen

    So einfach ist es dann noch nicht: Das 9-Euro-Ticket gilt nicht in allen Zügen, die mit einem Nahverkehrsticket genutzt werden können.

  2. Verifone: Bundesweite Störung von Girokarten-Terminals
    Verifone
    Bundesweite Störung von Girokarten-Terminals

    In vielen Geschäften lässt sich derzeit nur bar bezahlen. Ursache ist wohl ein Softwarefehler in Kartenzahlungsterminals für Giro- und Kreditkarten.

  3. Cerebras WSE-2: München verbaut riesigen KI-Chip
    Cerebras WSE-2
    München verbaut riesigen KI-Chip

    Als erster Standort in Europa hat das Leibniz-Rechenzentrum (LRZ) ein CS-2-System mit Cerebras' WSE-2 gekauft, welches effizient und schnell ist.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • Days of Play: (u. a. PS5-Controller (alle Farben) günstig wie nie: 49,99€, PS5-Headset Sony Pulse 3D günstig wie nie: 79,99€) • Viewsonic Gaming-Monitore günstiger • Mindstar (u. a. MSI RTX 3090 24GB 1.599€) • Xbox Series X bestellbar • Samsung SSD 1TB 79€ [Werbung]
    •  /