‫Dus
‫laten we in deze lezing een korte bespreking hebben over wat er feitelijk op de achtergrond gebeurt als we
‫de opdracht docker container run uitvoeren.
‫Er is soms een misvatting dat Docker eigenlijk alleen containers draait en dat dat zijn
‫belangrijkste taak is.
‫Maar er gebeurt eigenlijk zoveel op de achtergrond dat het naast de containers die
‫opdrachten uitvoeren ook doet.
‫Wanneer we docker container run typen, gaat het op de achtergrond zoeken naar de afbeelding die we aan het
‫einde van die opdracht hebben opgegeven.
‫Weet je nog toen we nginx helemaal aan het einde typten, dat was de naam van de afbeelding die we als
‫een nieuwe container wilden uitvoeren.
‫Dus het gaat daar lokaal naar zoeken in de afbeeldingscache. Als het het daar niet
‫vindt, springt het naar Docker Hub, de standaard externe afbeeldingsrepository.
‫Standaard zoekt het het daar op en downloadt het en slaat het op in de afbeeldingscache.
‫Dus als we geen versie specificeerden -- en dat hebben we niet gedaan, we hebben gewoon nginx ingetypt --
‫je kunt een bepaalde versie in nginx colon typen -- en daar komen we in de volgende sectie op terug -- maar zonder als
‫u een versie opgeeft, kiest het gewoon de nieuwste.
‫Dan, zodra het die afbeelding heeft en klaar is om te gaan, zal het een nieuwe container starten op basis van die afbeelding.
‫Er wordt geen kopie van de afbeelding gemaakt.
‫Het begint eigenlijk gewoon een nieuwe laag met veranderingen, precies bovenop waar die afbeelding was gebleven, en
‫het gaat het netwerk aanpassen.
‫Het geeft het een specifiek virtueel IP-adres dat zich in een virtueel Docker-netwerk bevindt. Het gaat eigenlijk de poort openen
‫die we hebben gespecificeerd. Als we het Publish-commando, de
‫--publish, niet specificeerden, zal het helemaal geen poorten openen.
‫Omdat we de 80:80 hebben gedaan, is dat veelzeggend om poort 80 op de host te nemen en al dat
‫verkeer door te sturen naar poort 80 in de container. Dan zal die container eindelijk een commando gaan gebruiken
‫dat gespecificeerd is in de Dockerfile, die ook over de volgende sectie zal praten.
‫U kunt de meeste van deze opdrachten daadwerkelijk vanaf de opdrachtregel wijzigen.
‫Dit zijn allemaal echt standaardinstellingen.
‫We kunnen de versie van onze afbeelding daadwerkelijk specificeren.
‫We kunnen verschillende poorten specificeren of de standaardopdracht die moet worden uitgevoerd wanneer die container wordt gestart.
‫Maar omdat we een heel eenvoudig commando hadden, gebruikte het gewoon veel standaardinstellingen die uit de doos kwamen.
‫Zoals je kunt zien, gebeurt er zeker veel op de achtergrond.
‫En later gaan we op elk van deze in afzonderlijke secties in.