Basis van cloud en containers

In een container die uit een image is gestart, wordt het configuratiebestand /etc/app.conf gewijzigd, dat deel uitmaakt van het image. Welke beschrijving van wat er gebeurt met het gangbare opslagmechanisme van Docker (zoals overlay2) is juist?

  1. AHet bestand wordt naar de beschrijfbare laag van de container gekopieerd en daar gewijzigd; het image en andere containers worden dus niet beïnvloed
  2. BHet bestand in de laag van het image wordt rechtstreeks gewijzigd; andere containers die uit hetzelfde image zijn gestart, zien dus ook de nieuwe inhoud
  3. CDe lagen van een image zijn alleen-lezen; bestanden uit het image kunnen dus niet worden gewijzigd en het schrijven mislukt met een fout
Antwoord en toelichting tonen

Antwoord: A. Het bestand wordt naar de beschrijfbare laag van de container gekopieerd en daar gewijzigd; het image en andere containers worden dus niet beïnvloed

Het bestandssysteem van een container toont de alleen-lezen lagen van het image met daarboven een beschrijfbare laag voor die container als één enkele boom. De eerste keer dat een bestand uit een lagere laag wordt gewijzigd, wordt het naar de beschrijfbare laag gekopieerd, en daarna wordt die kopie gebruikt (copy-on-write). De lagen van het image blijven dus ongewijzigd, en andere containers die hetzelfde image delen, worden niet beïnvloed. Omdat de eerste kopie van een groot bestand tijd kost, worden gegevens waarnaar vaak wordt geschreven, zoals de gegevens van een database, in een volume geplaatst.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van cloud en containers

  1. Om een archief van 500 MB, data.tar.gz, uit te pakken, is met het bovenstaande Dockerfile een image gebouwd. Hoewel het archief na het uitpakken in dezelfde RUN werd verwijderd, bleef het image nog steeds groter, precies met de grootte van het archief. Welke combinatie van oorzaak en oplossing is het meest geschikt?
  2. Er zijn vijf images die elk een eigen laag van 30 MB stapelen op hetzelfde basisimage (120 MB). Compressie van de lagen en de grootte van metadata worden verwaarloosd. Hoeveel schijfruimte gebruiken de images als alle vijf naar één server worden gehaald (pull)?
  3. Welke combinatie van de opdracht die bij het bouwen van het image met docker build wordt uitgevoerd en de opdracht die bij het starten van een container met docker run wordt uitgevoerd, is voor het bovenstaande Dockerfile juist?
  4. Een image met de naam pinger, gebouwd uit het bovenstaande Dockerfile, wordt gestart met docker run pinger example.com. Welke opdracht wordt in de container uitgevoerd?
  5. Met de bovenstaande opdracht wordt een container gestart uit het image nginx, een webserver die op poort 80 luistert. Het IP-adres van de host is 192.0.2.10, en er zijn geen beperkingen zoals een firewall. Welke URL is juist om deze webserver te bereiken vanuit een browser op een andere pc in hetzelfde netwerk?