Docker - LamiralMerlijn/IT-Landscape GitHub Wiki

In dit hoofdstuk hebben we nieuwe tool die we onder de microscoop gaan bekijken.

Deze tool heet docker. Docker heeft ons geleerd hoe we met containers en images kunnen werken. Eerst en vooral zou ik het willen hebben over de containers van docker of anders gezegd, containerization.

Containerization wilt zeggen dat je programma's laat draaien in een container op je pc i.p.v. je pc zelf. Deze containers gebruiken dus niet de resources van je computer. Dit wil zeggen dat ze heel handig zijn om verschillende programma's te lapen te gelijk terwijl de performantie van je computer niet naar beneden gaat. Dit wilt ook zeggen dat je kan inloggen op docker en op eender welk apparaat je container kan laten lopen.

Nu ga ik je laten zien hoe je docker installeert op je apparaat.

Stap 1: Eerst en vooral zoek je op 'docker install'. Hier ga je een paar links tegenkomen en dak druk je op deze. Screenshot 2025-05-28 161911

Stap 2: Je bent op de site van docker geraakt en nu krijg je 2 keuzes. Start de tutorial van docker zelf en installeer het zo. Of je volgt mijn tutorial en dan kies je 'Download Docker Desktop'. Als je op windows zit kies je deze. Screenshot 2025-05-28 162231

Stap 3: Proficiat je hebt de docker installer geïnstalleerd! Wacht nu even tot de download gedaan is en volg de installer. Screenshot 2025-05-28 163034

Stap 4: De stappen van de installer kunnen voor sommige mensen afschrikkend zijn dus laat alles op default en als je wil kan je deze later aanpassen in je instellingen.

Stap 5: Je bent klaar om aan de slag te gaan met docker! Ik raad ook aan om de 101 tutorial van docker te volgen, deze legt nog eens goed uit hoe je te werk gaat. image

Nu dat docker op je computer staat kan je beginnen met het ontdekken van Docker. Er zijn een aantal commando's die je leven heel het wat gemakkelijker gaan maken als je veel te werk gaat met docker.

Voor we beginnen aan docker zou ik nog de 3 belangrijkste delen van docker uitleggen.

1: Dockerfile. Een dockerfile is een tekstbestand waar al de nodige code staat om een Docker image te creeën zodat deze ook kan gaan runnen in een container. Ik heb dit gedaan met VS Code. Screenshot 2025-05-30 122247

2: Docker image. In een image staat alle nodige code om een een container te maken. Dit bevat ook de nodige code om de app in de container te laten werken. Hiervoor heb je dan zeker en vast je Dockerfile nodig maar ook je json file en een index.js. Eens dit in orde is kan je 'Docker build -t imgnaam .' uitvoeren en je image is gemaakt. Screenshot 2025-05-30 121814

3: Docker Container. De container kan je zien als de package waar de image in zit. Deze heeft dus ook de code van de image. nadat je een img hebt aangemaakt kan je dit commando uitvoeren om een container aan te maken. 'docker run -p 3000:3000 imgnaam'

Screenshot 2025-05-30 121830

Nu we een basic image en container kunnen maken ga ik jullie utleggen wat docker compose is en hoe het werkt.

Docker compose is een tool dat er voor zorgt dat je verschillende containers tegelijk kunt laten draaien met een YML file. In deze file kan je schrijven hoeveel en welke containers je wilt runnen en hetzelfde geld voor de images. Dit kan handig zijn om verschillende services te gelijk te runnen of juist niet.

Dit kan bevoorbeeld handig zijn als je wilt werken met 1 of verschillende databases in je programma.

hier is een voorbeeld van een docker compose file in VS code: Screenshot 2025-05-30 151414

  • De services zorgen er voor dat de nodige containers er zijn voor je app.
  • De build bouwt de nodige images voor je app in de juiste directory.
  • De enviroment zorgt er voor dat de app weet waar hij moet verbinden met de mongo database.
  • De Depends_on vertelt dat eerst de database moet gestart worden voor de app. Dit wil zeggen dat de site altijd eerst toegang heeft aan de database voor deze start.
  • De mongo:/image: ik heb niet zelf de mongoDB image gemaakt dus haal ik deze van de docker hub en zorg ik dat ik de laatste versie heb.
  • De ports: zorgen ervoor dat de data base kan verbonden worden met andere app's.

source:https://docs.docker.com/compose/

source:https://spacelift.io/blog/docker-compose

source:https://docs.docker.com/get-started/docker_cheatsheet.pdf