Introductie Docker container management service

Op: 12 apr 2021

Enterprise Applications

Docker is een container management service. Containers kunnen worden gebruikt om overal en altijd  te kunnen ontwikkelenverschepen en draaien van software. Docker images stellen ons in staat om complete omgevingen op te slaan als images. De Docker images kunnen overal worden gedeployed, en kunnen o.a. worden gebruikt op locatie, ontwikkel machines, of externe service providers in de Cloud.

 

Zowel Windows als Linux omgevingen kunnen als containers worden gedraaid, maar houd er rekening mee dat Linux containers op zowel Linux als Windows hosts kunnen worden gedraaid, maar Windows containers enkel op Windows hosts kunnen worden gebruikt. 

Noot: Onder Windows kan men ook Linux images maken, maar uiteraard niet gebaseerd op Windows server systemen zoals bijvoorbeeld IIS. 

 

Belangrijkste Features 

  • Kleinere ontwikkel grootte  door compactere besturingssysteem
  • Makkelijker voor teams en verschillende disciplines om werk te delen en te werken met dezelfde ontwikkel code (denk hierbij bijvoorbeeld aan Front en Back end ontwikkelaars, alsmede testers)  
  • Deploy overal; fysieke machines, virtuele machine of de cloud
  • Enorm schaalbaar vanwege het lichtgewichte karakter

 

Docker Componenten 

  • Docker voor MacLinux and Windows. 
  • Docker Engine 
  • Docker Hub  
  • Docker Compose 

 

Containers vs. Virtual Machines 

Containers gedragen zich als Virtuele machines maar onderscheiden zich hiervan op een aantal aspecten. In het kort komt het er simpelweg op neer dat containers goedkoper zijn. Zowel VM’s als containers slaan de applicatie en afhankelijkheden op, maar virtuele machines zullen ook het gehele besturingssysteem op moeten slaan, waar containers een engine hebben die het host besturingssysteem gebruikt om op te draaien. Zodoende zijn containers een stuk Kleiner, makkelijker en sneller te deployen en bieden voor een hogere applicatie dichtheid. 

    

Aan de slag 

Toegang tot een Ubuntu shell vanuit een container.

Stel dat we een applicatie willen gaan ontwikkelen die op een Ubuntu omgeving moet gaan draaien. Als uitgangspunt kunnen we dan Ubuntu gaan draaien vanuit een de Docker Hub. We kunnen er dan ook bij via een shell. Om dit te bewerkstelligen kunnen we simpelweg het volgende commando invoeren in een terminal naar keuze. 

docker run -it ubuntu bash 

Command line interpretatie 

Command / parameter  Omschrijving 
Docker  Begin ieder docker commando met ‘docker 
Run  Run een commando in een nieuwe container 
-i  Houd STDIN open, zelfs wanneer niet aangesloten 
-t  Alloceer een pseudo-TTY
(m.a.w. sta keyboard invoer toe) 
Ubuntu  De naam van de container 
bash  Start de container op met bash 

 

Resultaat 

Zoals te zien is in het terminal screenshot hierboven is de Ubuntu image gedownload, gestart en zijn we als vanzelf in de Ubuntu shell beland. Het uname – a commando toont de versie informatie van het besturingssysteem. We zitten nu dus daadwerkelijk in een linux container die draait op onze Windows machine. 

Linux/Ubuntu is slechts een voorbeeld, stel je maar eens voor wat we allemaal aan configuraties zouden kunnen draaien vanuit een dergelijke container.  Publiek beschikbare images kun je vinden op http://hub.docker.com. 
De Docker Hub is een opslagplaats (repository) voor Docker Images.