Tags voor dit FAQ item:
CentOS Cloud Servers docker

In welke mate heeft dit artikel uw vraag beantwoordt?

Score van 5 sterren, gebaseerd op 2 beoordelingen

CentOS 7 en Docker containers!

Laatste bijgewerkt: 28/04/2016

In dit artikel wordt uitgelegd hoe je van start kan gaan met Docker op CentOS 7.
De cloud server waarvan we starten is een lege CentOS 7 cloud server, zoals je deze van Kinamo kan ontvangen. Daarop installeren we de Docker engine, zodat je een Docker image kan draaien binnen de docker engine.

We gaan er van uit dat je werkt met een gebruiker die beheerdersrechten kan krijgen met "sudo". Als je werkt als root gebruiker moet je bij de onderstaande commando's "sudo" weglaten.
Kinamo cloud hosting klanten die gebruik maken van een cloud server en Docker wensen te gebruiken, werken best met "sudo". 

Om er zeker van te zijn dat we alle recente packages hebben - Docker vereist nu eenmaal up to date te zijn - starten we met een volledige upgrade van het systeem:

$ sudo yum update

De package manager zal de lijst van pakketten vernieuwen en kijkt voor welke pakketten er een upgrade beschikbaar is. Zodra deze klaar is vraagt hij om de update te bevestigen:

Is this ok [y/d/N]:

Kies "y" om verder te gaan.

Zodra de update afgerond is voegen we de Docker repository toe. Op deze manier kunnen we de meest recente stabiele versie van Docker installeren.
Aangezien Docker - in technologie termen dan - relatief nieuw is raden we aan om steeds te werken met een up to date repository.

Maak met je favoriete tekst editor het bestand "docker.repo" aan in de map "/etc/yum.repos.d".

$ sudo vim /etc/yum.repos.d/docker.repo

In dit bestand kopieer je de volgende inhoud:

[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg

Sla vervolgens het bestand op.
Kort samengevat maak je een dockerrepo aan die verwijst naar de officiële centos docker installatiebestanden.

De cloud server met Docker is bijna klaar!
Na het toevoegen van de Docker repository kunnen we docker-engine installeren met het volgende commando:

$ sudo yum install docker-engine

Yum zal opnieuw om bevestiging vragen. Kies "y" om de installatie van docker-engine te bevestigen.

Is this ok [y/d/N]:

De Docker engine is nu geïnstalleerd op de Kinamo cloud server, maar we gaan er nog voor zorgen dat de service zeker geactiveerd en gestart is!

$ sudo systemctl enable docker.service
$ sudo systemctl start docker.service

Om er zeker van te zijn of de installatie geslaagd is kunnen we de all time classic "hello-world" image starten:

$ sudo docker run hello-world

Je krijgt dan de volgende uitvoer:

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world

4276590986f6: Pull complete
a3ed95caeb02: Pull complete
Digest: sha256:4f32210e234b4ad5cac92efacc0a3d602b02476c754f13d517e1ada048e5a8ba
Status: Downloaded newer image for hello-world:latest

Hello from Docker.
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker Hub account:
 https://hub.docker.com

For more examples and ideas, visit:
 https://docs.docker.com/engine/userguide/

Een installatie van de Docker engine vereist niet meer dan dat. Je bent dus klaar om met Docker aan de slag te gaan. In de praktijk echter bied werken met Docker containers voor ontwikkelaars veel voordelen: betere scheiding van applicatie en onderliggende server logica, werken met verschillende containers op cloud servers (bijvoorbeeld opsplitsing van een web app container, Docker database container met MySQL).

Klinkt dit als muziek in de oren? Probeer dan alvast:

sudo docker run -it debian bash

Hiermee start je een terminal sessie in een nieuwe Debian container... Op je CentOS server!

Dit kan je testen met:

$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 8 (jessie)"
NAME="Debian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"
ID=debian
HOME_URL="http://www.debian.org/"
SUPPORT_URL="http://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

Meer images kan je vinden op de Docker Hub.

Je kan Docker nog sneller installeren aan de hand van een script. Dit is handig om snel aan de slag te gaan...

Let op! Je voert in dit geval een script uit dat je rechtstreeks van het internet haalt.
Zonder het script eerst grondig te bestuderen weet je dus niet of het schade aan je systeem kan toebrengen!

We starten met een volledige upgrade van het systeem:

$ sudo yum update

Volgende stap is het uitvoeren van het installatiescript:

$ curl -fsSL https://get.docker.com/ | sh

De Docker engine is nu geïnstalleerd, maar we gaan er nog voor zorgen dat de service zeker geactiveerd en gestart is.

$ systemctl enable docker.service
$ systemctl start docker.service

Om te testen of onze Docker installatie via script geslaagd is starten we nu het "hello-world" image.

$ sudo docker run hello-world

Docker hosting is dus niet langer utopie, met een Kinamo cloud server kan men zonder twijfel creatief uit de hoek komen! In een volgend artikel gaan we voorbij de "Hello World" en zetten we concreet een web toepassing op poten.