Docker

dockerCloud-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

Het resultaat:docker-install03

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:

docker-bashIn 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

docker-hubOm deze image te gebruiken binnen onze Ubuntu server, type het volgende commando:

docker run docker/whalesay cowsay Hello World!

whalesay01De 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.

whalesay02We 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-imagesOm deze uit te voeren:

docker run docker-whale


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.

docker-pushdocker-hub2That’s all folks!