Grundlagen von Cloud und Containern

Auf einem Linux-Host wird mit Docker ein Container aus einem Image gestartet, das auf einer anderen Distribution als der des Hosts beruht, und darin werden uname -r (zeigt das Release des Kernels) und cat /etc/os-release (zeigt Angaben zur Distribution) ausgeführt. Welche Beschreibung der Ergebnisse ist richtig?

  1. ASowohl uname -r als auch /etc/os-release zeigen Angaben zum Kernel und zur Distribution des Hosts
  2. BSowohl uname -r als auch /etc/os-release zeigen Angaben zur Distribution, auf der das Image beruht, und zu deren Kernel
  3. Cuname -r zeigt den Kernel des Hosts, /etc/os-release die Distribution des Images
Antwort und Erläuterung anzeigen

Antwort: C. uname -r zeigt den Kernel des Hosts, /etc/os-release die Distribution des Images

Ein Container teilt sich den Kernel des Hosts; uname -r, das den Kernel abfragt, zeigt daher auch im Container das Release des Host-Kernels. /etc/os-release ist dagegen eine Datei und wird aus dem Dateisystem gelesen, das der Container sieht, also aus dem Image; angezeigt wird der Name der Distribution des Images. Ein Image enthält keinen Kernel, sondern nur Dateien des Userspace wie Befehle und Bibliotheken. Ein Programm, das eine Funktion voraussetzt, die dem Kernel des Hosts fehlt, läuft deshalb auch im Container nicht.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen von Cloud und Containern

  1. Welche Beschreibung des Verhältnisses zwischen einem Container-Image und einem Container ist richtig?
  2. In einem Container, der aus einem Image gestartet wurde, wird die im Image enthaltene Konfigurationsdatei /etc/app.conf geändert. Was geschieht beim üblichen Speichermechanismus von Docker (etwa overlay2)?
  3. Um das 500 MB große Archiv data.tar.gz zu entpacken, wurde mit dem obigen Dockerfile ein Image gebaut. Obwohl das Archiv nach dem Entpacken im selben RUN gelöscht wurde, blieb das Image um die Größe des Archivs größer. Welche Kombination aus Ursache und Abhilfe ist am besten geeignet?
  4. Fünf Images legen jeweils eine eigene Schicht von 30 MB über dasselbe Basis-Image (120 MB). Komprimierung der Schichten und Platzbedarf der Metadaten werden vernachlässigt. Wie viel Festplattenplatz belegen die Images, wenn alle fünf auf einen Server geholt werden (pull)?
  5. Welche Kombination gibt für das obige Dockerfile richtig an, welcher Befehl beim Bauen des Images mit docker build und welcher beim Starten eines Containers mit docker run ausgeführt wird?