Basis van cloud en containers

FROM alpine
ENTRYPOINT ["ping", "-c", "3"]
CMD ["localhost"]

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?

  1. Aping -c 3 localhost
  2. Bping -c 3 example.com
  3. Cexample.com (de poging om het als opdracht uit te voeren, mislukt met een fout)
Antwoord en toelichting tonen

Antwoord: B. ping -c 3 example.com

Een ENTRYPOINT in exec-vorm (een JSON-array) is de opdracht die de container altijd uitvoert, en CMD levert de standaardargumenten daarvoor. Argumenten die in docker run na de naam van het image staan, vervangen CMD en worden achter het ENTRYPOINT geplaatst; er wordt dus ping -c 3 example.com uitgevoerd. Bij een start zonder argumenten, als docker run pinger, zou de localhost uit CMD worden gebruikt, wat ping -c 3 localhost geeft. Om het ENTRYPOINT zelf te veranderen, gebruikt men de optie --entrypoint van docker run.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van cloud en containers

  1. 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?
  2. Het bovenstaande Dockerfile (B) is gemaakt uit Dockerfile (A), waarin RUN npm ci na COPY . . stond, door de volgorde zo te veranderen dat eerst alleen de bestanden met de afhankelijkheden worden gekopieerd. npm ci duurt 120 seconden, npm run build 30 seconden en COPY . . 2 seconden; de tijd van de andere instructies is verwaarloosbaar. Het image wordt 20 keer per dag opnieuw gebouwd nadat alleen de broncode onder src is gewijzigd (package.json en package-lock.json blijven ongewijzigd). Hoeveel korter is de totale buildtijd per dag met B dan met A, als de cache van de vorige build kan worden gebruikt?
  3. Welke beschrijving van benoemde volumes en bind mounts in Docker, die worden gebruikt om gegevens te bewaren die een container schrijft, is juist?
  4. Een image wordt gehaald (pull) door registry.example.com/team/web:1.4 op te geven. Welke combinatie geeft de betekenis van elk deel van deze verwijzing juist weer?
  5. scratch is een leeg image dat geen enkel bestand bevat. Welke beschrijving van wat het uiteindelijke image bevat dat met het bovenstaande Dockerfile met een multi-stage build is gebouwd, is juist?