Cloud-diensten, zoals Microsoft Azure, worden o.a. gebruikt om virtuele machines uit te rollen. De virtualisatie maakt het mogelijk om hardware-resources te delen tussen de VM’s en kan zodoende efficiënt ingezet worden.
Met de mogelijkheid om containers te kunnen gebruiken wordt het gebruik nog efficiënter doordat nu zelfs het onderliggende OS gedeeld wordt. Deze containers zijn eenvoudig uit te rollen en images die nodig zijn in deze containers kunnen met docker uitgerold worden.
Met docker is het mogelijk om via de command line (CLI) containers te maken en te beheren.
Docker for Windows
Docker for Windows installeren we via https://download.docker.com/win/stable/InstallDocker.msi
Docker for Linux
Docker installeren op een Linux systeem wordt gedaan volgens de handleiding op https://docs.docker.com/engine/install/
docker commando
Hierna is docker geïnstalleerd en gereed voor gebruik.
Het commando ‘docker’ wordt gevolgd door een subcommando, bijvoorbeeld ‘run’ dat aangeeft dat een image gestart moet worden. De naam van de image dient ingegeven te worden en als voorbeeld is er ‘hello-world’ waardoor het volledige commando er als volgt uitziet:
docker run hello-world
Er wordt eerst gecontroleerd of de image ‘hello-world’ lokaal aanwezig is, zoniet dan wordt deze gedownload van de Docker Hub waarna het geladen en uitgevoerd wordt.
Om bijvoorbeeld een ubuntu container te starten, type het volgende commando:
docker run -it ubuntu bash
Het resultaat is een geïsoleerde Ubuntu bash shell:
In de Docker Hub kunnen gebruikers en bedrijven hun code plaatsen die dan door iedereen gebruikt kunnen worden.
Kijk op https://hub.docker.com voor een Docker image genaamd ‘whalesay‘
Om deze image te gebruiken binnen onze Ubuntu server, type het volgende commando:
docker run docker/whalesay cowsay Hello World!
De eerste keer dat dit commando uitgevoerd wordt zal docker de image zoeken op het lokale systeem. Als het daar (nog) niet aanwezig is wordt het opgehaald van de Docker Hub. Met het commando docker images wordt een lijst met aanwezige images getoond. als de whalesay image nogmaals wordt aangeroepen zal deze vanuit de lokale verzameling images gestart worden.
We kunnen ook zelf een docker image schrijven en deze laden. Laten we hier een directory maken genaamd mydockerbuild
mkdir mydockerbuild cd mydockerbuild
Dockerfile
Hier gaan we een bestand maken genaamd Dockerfile met
vi Dockerfile
We geven dit bestand de volgende inhoud:
FROM docker/whalesay:latest MAINTAINER Nico Oosterwijk <noosterwijk@hotmail.com> RUN apt-get -y update && apt-get install -y fortunes CMD /usr/games/fortune -a | cowsay
Het woord ‘FROM‘ laat docker weten welke image gebruikt gaat worden, vervolgens doen we een update van apt-get met ‘RUN’ om daarna ‘fortunes’ te installeren en uit te voeren met ‘CMD’.
Nadat dit bestand is aangemaakt gaan we docker instructie geven om er een image van te maken met:
docker build -t docker-whale .
(vergeet de laatste . punt niet)
Met het commando ‘docker images‘ worden de lokale images getoond en dus ook degene die we zojuist gemaakt hebben:
docker run docker-whale
Docker hub
De docker image gaan we delen met de wereld! In de Docker Hub gaan we een repository maken en we loggen vervolgens in via het commando ‘docker login‘
We taggen de image met het image ID:
docker tag 6d6944493858 nokkie/docker-whale:latest
Vervolgens geven we het commando ‘docker push‘ om de image in de repository te plaatsen.