Difficulty: beginner
Estimated Time: 15 minuten

Aan het einde van deze oefening kan je het volgende:

  • Het schrijven van een Dockerfile gebruik makend van FROM en RUN commando’s;
  • Het maken van een image met een Dockerfile;
  • Anticiperen welke image lagen uit de cache worden gehaald wanneer deze wordt gebouwd;
  • Ophalen van de bouw geschiedenis van een image.

5. Creëren van images met Dockerfiles (1/2)

Step 1 of 3

5.1 Maken van een Dockerfile

1) In ons te bouwen image maken we gebruik van het debian:9 base-image en installeren daarbij wget zodat we webpagina's kunnen downloaden.

Gebruik de editor om een Dockerfile te schrijven en plaats daar onderstaande regels in:

FROM debian:9

RUN apt-get update
RUN apt-get install -qqy wget

Het is aantrekkelijk om ipv het versie nummer :latest te gebruiken in het FROM statement. Maar dit kan in de toekomst tot gevolg hebben dat je jouw image tegen een nieuwe versie aan het bouwen bent zonder dat je dat weet. Het advies is om altijd een specifiek (of tenminste major) versie nummer te gebruiken.

2) Bouw nu je image met onderstaand commando. Het -t (--tag) argument geeft je image een naam (mijnimage) en optioneel tag (v1) naar keuze. Als er geen expliciete Dockerfile wordt opgegeven zoekt Docker in de huidige directory naar een Dockerfile.

docker image build -t mijnimage:v1 .

Het image is succesvol gebouwd als Succesfully tagged mijnimage:v1 wordt getoond.

De . aan het einde van het commando geeft de build context aan, dit zijn de bestanden waartoe de Dockerfile toegang heeft en kan gebruiken in relatie tot het bouwen van het image, in deze stituatie is dat de huidige directory.

3) Controleer of het image wat je hierboven hebt gebouwd ook daadwerkelijk bestaat. Dit doen we met het docker image ls commando, wat een overzicht geeft van de images aanwezig op dit systeem:

docker image ls

4) Gebruik dit image nu om een container te starten en iets te downloaden met wget, dit kan op 2 manieren zoals je eerder geleerd hebt:

4 optie 1) Start een container van je mijnimage:v1 image, start een bash shell en connect deze met je terminal:

docker container run -it mijnimage:v1 bash

Gebruik nu binnen je container het wget commando om https://google.nl te downloaden:

wget https://google.nl

Sluit de bash sessie: exit

4 optie 2) Start een container van je mijnimage:v1 image en gebruik het wget commando om https://google.nl te downloaden en het resultaat naar je terminal te sturen:

docker container run -it mijnimage:v1 wget https://google.nl

Dockerfile