Docker Compose is bijzonder geschikt voor ontwikkel- en testom­ge­vin­gen, maar ook voor kleinere productie-im­ple­men­ta­ties. We leggen uit hoe u met Compose eenvoudig Docker-ap­pli­ca­ties op Ubuntu kunt or­ke­stre­ren.

Wat zijn de vereisten voor Docker Compose op Ubuntu?

Voordat u Docker Compose kunt gebruiken, moet u ervoor zorgen dat uw systeem aan de volgende vereisten voldoet:

  • Docker Engine: Compose is een uit­brei­ding op de Docker Engine die u moet in­stal­le­ren.
  • Be­stu­rings­sys­teem: Ubuntu, sudo-gebruiker met root-rechten.
Tip

Als u een ander be­stu­rings­sys­teem dan Linux wilt gebruiken, raadpleeg dan onze hand­lei­ding voor het in­stal­le­ren van Docker Compose op Windows en Docker Compose op macOS.

Staps­ge­wij­ze hand­lei­ding voor het in­stal­le­ren van Docker Compose op Ubuntu

Om Docker Compose op Ubuntu te gebruiken, moet u eerst Docker Engine in­stal­le­ren en con­tro­le­ren of het correct werkt. Zodra Docker werkt, downloadt u Compose en maakt u het YAML-bestand aan om uw ap­pli­ca­ties te con­fi­gu­re­ren.

Stap 1: Download en in­stal­leer Docker Compose

Download de nieuwste versie van Docker Compose uit de officiële GitHub-re­po­si­to­ry door de volgende opdracht in een terminal in te voeren:

$ curl -SL https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
shell

Nu kunt u Docker Compose uit­voer­rech­ten geven:

$ sudo chmod +x /usr/local/bin/docker-compose
shell

Gebruik optie --version om te con­tro­le­ren of Compose succesvol is ge­ïn­stal­leerd.

$ docker-compose --version
shell

Je krijgt de volgende uitvoer:

Afbeelding: Docker Compose Version
If you see the version number, Docker Compose has been suc­ces­sful­ly installed.

Als de in­stal­la­tie mislukt, con­tro­leer dan het pad.

U kunt ook een sym­bo­li­sche link naar het pad /usr/bin maken:

$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
shell

Stap 2: Con­fi­gu­reer het bestand docker-compose.yml

Om het ontwerp van een Docker Compose YAML-bestand te de­mon­stre­ren, gebruiken we de Nginx-image van de officiële Docker Hub voor de con­tai­ner­om­ge­ving.

Maak eerst een nieuwe map aan in uw ho­me­di­rec­to­ry:

$ mkdir ~/compose-test
shell

Ga naar de map en maak een nieuwe map aan voor de hoofdmap van uw Nginx-omgeving.

$ cd ~/compose-test
$ mkdir app
shell

Je kunt elke tekst­edi­tor zoals nano gebruiken om index.html aan te maken.

$ nano app/index.html
shell

Hier is de HTML-code voor een voor­beeld­pa­gi­na:

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Docker Compose Test</title>
</head>
<body>
    <h1>This is a Docker Compose Test Page for an Nginx container.</h1>
</body>
</html>
html

Sla het HTML-bestand op en sluit het. Maak ver­vol­gens het bestand docker-compose.yml aan.

$ nano docker-compose.yml
shell

De inhoud is on­der­ver­deeld in het ver­sie­num­mer van de con­fi­gu­ra­tie en het dien­sten­blok.

version: '3.9'
services:
    web:
        image: nginx:alpine
        ports:
            - "8000:80"
        volumes:
- ./app:/usr/share/nginx/html
YAML

Binnen het dien­sten­blok is er één dienst met de naam ‘web’. Deze is gekoppeld aan de opgegeven Nginx-image en poor­t­om­lei­ding. In onze con­fi­gu­ra­tie worden alle verzoeken aan poort 8000 op de host­ma­chi­ne omgeleid naar de web­con­tai­ner op poort 80, waar Nginx draait. Verder gebruiken we een gedeeld volume tussen de host en de container. Hierdoor is de lokale map ‘app’ toe­gan­ke­lijk voor de Nginx-ap­pli­ca­tie.

Stap 3: Voer Docker Compose uit

Met het volgende commando maken we een web­con­tai­ner aan en draaien we de con­tai­ner­om­ge­ving op de ach­ter­grond:

$ docker-compose up -d
shell

Als de af­beel­ding die in het YAML-bestand is opgegeven niet op het lokale systeem aanwezig is, wordt deze au­to­ma­tisch ge­down­load.

Om te testen of de Nginx-omgeving actief is, voert u het commando ps in.

$ docker-compose ps
shell

De voor­beeld­pa­gi­na die u eerder hebt gemaakt, is nu toe­gan­ke­lijk op localhost:8000 wanneer u de demo op uw computer uitvoert. Als u een externe server gebruikt, hoeft u alleen maar het IP-adres van uw server op te geven in plaats van ‘localhost’.

Afbeelding: Docker Compose sample page
Sample page for an Nginx container

U kunt de con­tai­ner­toe­pas­sing stoppen met behulp van stop.

$ docker-compose stop
shell
Ga naar hoofdmenu