Grundlagen von Cloud und Containern

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

  1. A150 MB
  2. B270 MB
  3. C750 MB
Antwort und Erläuterung anzeigen

Antwort: B. 270 MB

Image-Schichten werden durch einen aus ihrem Inhalt berechneten Digest identifiziert; eine identische Schicht wird auf einem Server nur einmal gespeichert und von mehreren Images gemeinsam genutzt. Die Schicht des Basis-Images mit 120 MB wird einmal gespeichert, die fünf eigenen Schichten belegen 30 MB × 5 = 150 MB, zusammen also 120 + 150 = 270 MB. Das sind 480 MB weniger als die 750 MB, (120 + 30) × 5, die ohne gemeinsame Nutzung nötig wären. Ein einheitliches Basis-Image verkürzt die Zeit zum Holen der Images und spart Festplattenplatz.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen von Cloud und Containern

  1. 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?
  2. Das aus dem obigen Dockerfile gebaute Image pinger wird mit docker run pinger example.com gestartet. Welcher Befehl wird im Container ausgeführt?
  3. Aus dem Image nginx, einem Webserver, der auf Port 80 lauscht, wird mit dem obigen Befehl ein Container gestartet. Die IP-Adresse des Hosts sei 192.0.2.10, und es gebe keine Einschränkungen etwa durch eine Firewall. Mit welcher URL erreicht man diesen Webserver vom Browser eines anderen PCs im selben Netzwerk?
  4. Das obige Dockerfile (B) ist aus Dockerfile (A) entstanden, in dem RUN npm ci nach COPY . . stand, indem die Reihenfolge so geändert wurde, dass zuerst nur die Abhängigkeitsdateien kopiert werden. npm ci dauert 120 Sekunden, npm run build 30 Sekunden und COPY . . 2 Sekunden; die Zeit der übrigen Anweisungen ist vernachlässigbar. Das Image wird 20-mal am Tag neu gebaut, wobei sich jeweils nur der Quellcode unter src ändert (package.json und package-lock.json bleiben unverändert). Um wie viel ist die gesamte Build-Zeit pro Tag bei B kürzer als bei A, wenn der Cache des vorherigen Builds genutzt werden kann?
  5. Welche Beschreibung von benannten Volumes und Bind-Mounts, mit denen in Docker die von einem Container geschriebenen Daten erhalten bleiben, ist richtig?