Spelen met Docker & RancherOS (1)

Containers zijn hot, en of je nu een klassieke systeembeheerder bent of een moderne DevOps engineer, er is bijna geen ontkomen aan of je moet er toch op zijn minst een keer mee gespeeld hebben.

Aangezien Docker momenteel wel de marktleider is als het gaat om container technology is dat wellicht ook het eerste waarmee je aan de slag kunt gaan. Wat heb je nodig voor een eerste kennismaking?

Om mee te beginnen natuurlijk Docker zelf, aangezien we er mee gaan ‘spelen’ is de community editie prima, en de installatie documentatie op de website van Docker is eenvoudig te volgen: selecteer je Linux distributie (of Mac) in de navigatie rechts en binnen een paar minuten ben je up and running.

Dan begint het echte werk, je moet je gaan inlezen in hoe het allemaal werkt, zeker als het gaat om storage en networking. Maar of je dat in dit stadium al wilt is maar de vraag. Kan het niet simpeler, een ready-to-go omgeving om je eerste container de lucht in te helpen?

Ja, dat kan, voor zowel je lab omgeving als voor productie. RancherOS is een stabiel, betrouwbaar en ready-to-go platform om containers in te draaien. Bij voorkeur in een virtuele machine: dat houdt je host ‘clean’ en in productie omgevingen zorgt het ook nog eens voor extra veiligheid en meer mogelijkheden voor resource-control.

Om een virtuele machine te maken die de Docker Engine (de daemon plus client applicatie) bevat kun je gebruik maken van Docker Machine. Op MacOSX is deze al geïnstalleerd, voor Linux kun je hier de instructies vinden.

Docker-Machine heeft ‘drivers’ aan boord voor vele hypervisors, een overzicht met configuratie parameters is uiteraard beschikbaar.

RancherOS laat zich via Docker Machine eenvoudig installeren. Stel je gebruikt VMware Fusion als virtualisatie platform, dan ziet het commando er zo uit:

docker-machine create --driver vmwarefusion \
--vmwarefusion-boot2docker-url \
https://releases.rancher.com/os/latest/rancheros.iso\
--vmwarefusion-memory-size 2048 \
--vmwarefusion-cpu-count 1 \
--vmwarefusion-disk-size 12000 \
ranchervm

Nu nog even de variabelen goed zetten om aan te geven dat je de Docker Engine wilt gebruiken die in de virtuele machine “ranchervm” draait:

eval $(docker-machine env rancher)

Controleren met:

docker info

Let op o.a. de velden “Operating System” en “Labels”.

Tijd voor een eerste container als test. We gaan een container starten die de NGINX webserver bevat. Deze zal eerst gedownload worden en als een daemon worden gestart.

docker run --detach --net=host --name nginx nginx:latest

De parameter –net=host zorgt ervoor dat er gebruik gemaakt wordt van het netwerk van de host, in dit geval dus het ip adres van de “ranchervm” machine. Deze vraag je op met:

docker-machine ip ranchervm

Open dit ip adres in je browser, en voila: de NGINX welkomst pagina komt te voorschijn.