Docker is een container management service. Containers kunnen worden gebruikt om overal en altijd te kunnen ontwikkelen, verschepen 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 Mac, Linux 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.
Wil je meer weten over dit onderwerp? Bekijk dan hier onze Cloud en Infrastructuur pagina!