Table of Contents

Voor het werken met Docker is een Linux-besturingssysteem zoals Ubuntu 24.04 LTS een populaire optie. Het wordt ook vaak op servers gebruikt, voor toepassingen die via de browser werken. Op deze website gebruiken we het onder meer voor Hoarder en deep research-toepassingen. In deze workshop leggen we uit hoe je Docker en Docker Compose kunt installeren binnen dit besturingssysteem.

💪
Docker is een open-source platform waarmee je containers kunt draaien. Een container bevat een toepassing én alles wat nodig is om die toepassing te laten draaien. Containers werken op elke omgeving (zoals Linux, Windows en macOS). Voor de configuratie is het vaak handig om met Docker Compose te werken. Je kunt dan in één yaml-bestand de volledige configuratie opgeven.

Voorbereiding

We gaan er vanuit dat je toegang hebt tot de opdrachtprompt via bijvoorbeeld SSH, met een gebruiker die sudo-rechten heeft. Om te beginnen heb je enkele pakketten nodig die essentieel zijn voor de stappen in deze workshop, onder meer bij het toevoegen van repositories.

sudo apt install apt-transport-https ca-certificates curl software-properties-common -y

Tevens moet je de GPG-sleutel downloaden en opslaan. Deze sleutel is nodig om Docker veilig te installeren via de officiële repository.

sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc

Hierna kun je de repository toevoegen:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Vernieuw de pakketlijsten. Dit zorgt er voor dat je Docker nu vanuit de officiële repository kunt installeren.

sudo apt update

Installatie

Installeer vervolgens Docker en enkele aanvullingen.

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Controleer installatie

Controleer het versienummer van Docker:

sudo docker --version

Zorg dat Docker steeds automatisch wordt gestart na het starten van Ubuntu:

sudo systemctl enable docker

Controleer de status van Docker en verifieer dat de toepassing actief is:

sudo systemctl status docker

Image downloaden

Als voorbeeld zullen we een container met de webserver Nginx starten. Hiervoor heb je de image voor Nginx nodig. Met de volgende opdracht kun je deze ophalen vanaf Docker Hub, een register voor het vinden, delen en beheren van Docker-images.

sudo docker pull nginx

Met docker images kun je controleren of de image is gedownload. Om de image op een later moment te vernieuwen kun je de pull herhalen.

Container starten

Je kunt nu de container starten met de onderstaande opdracht. Hierbij wordt de Nginx-webserver gestart op de standaardpoort 80. We geven de container met --name webserver een herkenbare naam.

sudo docker run --name webserver -d -p 80:80 nginx

Als je met een browser het IP-adres van het systeem bezoekt, zie je de welkomstpagina van Nginx. Als je hetzelfde systeem gebruikt kun je http://localhost invullen. Vanaf een ander systeem in het netwerk vul je het ip-adres van het systeem met Docker in, dus http://ip-adres.

Containers beheren

Met docker ps kun je zien welke containers actief zijn. In ons voorbeeld is dat alleen de webserver met Nginx.

Elke container heeft een id en naam. In ons voorbeeld, voor de Nginx-webserver, zijn dat bd5e232d33d9 en de zelf toegewezen naam webserver. Met docker stop bd5e232d33d9 of docker stop webserver kun je deze container stoppen.

Docker Compose

Je kunt ook met Docker Compose werken. Het is raadzaam voor elke container een mapje te maken. Je kunt dan, door een map als volume te koppelen, belangrijke bestanden voor de container in die map bewaren. Maak deze map bijvoorbeeld onder je homedirectory:

mkdir ~/nginx

Blader met cd ~/nginx naar deze map en maak met nano docker-compose.yml het configuratiebestand voor Docker Compose. Voor de Nginx-webserver ziet dat er zoals hieronder uit. In dit voorbeeld gebruiken we poort 8080 op de host.

services:
  nginx:
    image: nginx
    ports:
      - 8080:80

Met docker compose pull kun je de gebruikte images ophalen. Start de container met docker compose up -d. Bezoek http://localhost:8080 (op hetzelfde systeem) of http://ip-adres:8080 (vanaf een extern systeem) voor de welkomstpagina van Nginx. Verander desgewenst de poort (8080) op de host. De poort in de container (80) mag je niet veranderen. Als je klaar bent kun je de container stoppen met docker compose down.

Categorized in:

Software,