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