Docker ist eine Software, die den seit einiger Zeit in Schwung gekommenen Trend zur Virtualisierung von Computersystemen auch auf dem Raspberry Pi möglich macht.
Virtualisierung
Die Virtualisierung eines Computers erlaubt es, einen physischen Computer (deinen Raspi) in mehrere virtuelle, software emulierte Rechner zu unterteilen. Vor 25 Jahren war so etwas nur millionenteuren Grossrechnern vorbehalten. Inzwischen ist dies auch auf dem Raspberry Pi möglich.
Docker ist eine Software, die dies möglich macht und es uns erlaubt, unter Raspberry Pi OS, Software zu starten, die bspw. Ubuntu als Betriebsystem benutzen, ohne an unserer Installation viel ändern zu müssen.
Docker installieren
sudo apt-get update
sudo apt-get install docker.io docker-compose
Container und Images
Ein Image enthält eine Software mitsamt aller notwendigen Resourcen, um sie lauffähig zu machen. Dazu gehört auch das notwendige Betriebsystem. Du kannst dir das ähnlich dem Image vorstellen, das du auf deine MicroSD Karte geflashed hast. Für viele Softwareprodukte findest du vorgefertigte Images in der Registry von docker.com, dem dockerhub
In einem Container wird ein Image ausgeführt.Mehrere Container können auf einem Raspi nebeneinander, voneinander entkoppelt ausgeführt werden.
Container sind flüchtig, d.h. im Container gespeicherte Daten gehen verloren, sofern man das Volume nicht nach aussen bekannt gemacht hat.
Registry
Eine Registry ist ein Server im Netz, auf dem viele vorgefertigte Images abrufbar sind. Defaultmässig wird hub.docker.com
benutzt.
Einen Container starten
Ein einfacher Container, den du zuerst mal starten solltest, basiert auf dem hello-world Image, er tut nicht mehr, als das Image herunterzuladen und eine Wilkommensnachricht auszugeben.
docker run hello-world
Der docker-client wird bei diesem Kommando das Image hello-world von der Registry herunterladen (pull) und ausführen (start)
Abgesehen von dem freundlichen Hallo zeigt dir der Container, dass
- Der dockerClient den DockerDaemon ansprechen konnte
- das hello-world Image erfolgreich von der Registry gepulled wurde.
- Ein neuer Container für dieses Image angelegt wurde, um es ausführen.
- Der Ausgabetext an den docker-client übertragen wurde, um ihn anzuzeigen.
Wenn du das siehst, ist das Docker-System einsatzbereit.
Container sind flüchtig, d.h. nach dem Durchlauf des Programms sind alle Daten im Container wieder weg. Wenn du Daten dauerhaft behalten möchtest, musst du ein Volume ins Dateisystem deines Raspberry Pi mappen.
Fazit
Mit Docker lassen sich verschiedene Anwendungen, die mitunter unterschiedliche Betriebssystemversionen benötigen, sauber nebeneinander auf einem Raspberry Pi betreiben.
Wie du es praktisch verwenden kannst, zeige ich dir im Projekt Homeserver