MariaDB is een gratis databaseserver die toegang biedt tot gegevens met behulp van een structured query language (SQL). De server biedt dan beveiligingsfeatures zoals wachtwoorden, rolgebaseerde toegangscontrole en nog veel meer om je gegevens te beveiligen.

Om MariaDB te deployen en je gebruikers toegang tot de gegevens te verlenen, moet je de databaseserver ergens hosten. Je kunt kiezen voor een cloudprovider of gebruik maken van managed of shared hostingdiensten.

Dit artikel leert je hoe je MariaDB kunt draaien met behulp van een Docker container, de databaseserver kunt configureren en draaien, en hem kunt verbinden met een WordPress website.

Wat is Docker?

Docker is een gratis ontwikkelaarstool waarmee je applicaties kunt draaien in een gecontroleerde omgeving die een container wordt genoemd. Containers bevatten applicatiecode, dependencies en cruciale systeemtools voor het draaien van je app. Hierdoor kun je robuuste applicaties leveren gedurende de hele levenscyclus van de softwareontwikkeling.

Meestal gebruiken containers je besturingssysteem als host. Dit betekent dat de kernel van de hostmachine toegang geeft tot resources als CPU’s, geheugen en het bestandssysteem. Hierdoor is traditionele virtualisatie zoals bij virtuele machines niet nodig. Er zijn verschillende voordelen van het gebruik van Docker om een MariaDB instantie te draaien:

  • Het heeft een kleine digitale voetafdruk, zodat systeemresources efficiënt worden gebruikt.
  • Het is consistent, zodat ontwikkelaars apps met minimale wijzigingen in productie- en testdeployments kunnen draaien.
  • Het biedt een flexibel mechanisme voor het delen van resources.
  • Het is schaalbaar – je kunt veel containers op een enkele host draaien.

Zo deploy je MariaDB met Docker

In dit deel zul je gecontaineriseerde omgevingen creëren om MariaDB te draaien met behulp van Docker. Je leert over de containertechnologie die Docker biedt. Docker werkt op de meeste versies van Windows, macOS en Linux distributies. Voor deze tutorial heb je Windows 10/11, Ubuntu 20.04, of een macOS X machine nodig om mee te kunnen volgen.

1. Docker installeren

Een van de beste eigenschappen van Docker is zijn portabiliteit. Het gebruikt het besturingssysteem van de host, waardoor het ideaal is voor test- en publicatieomgevingen. Deze sectie leert je hoe je Docker installeert op de drie besturingssystemen.

Ubuntu 20.04

Werk eerst de pakketlijst van Ubuntu bij.

sudo apt-get update

Geef vervolgens toegang tot online repositories via HTTPS.

sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

Docker installeren via de terminal.
Voeg vervolgens de GPG sleutel van Docker toe.

sudo mkdir -p /etc/apt/keyrings

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

Voeg nu de repository van Docker toe.

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

Werk vervolgens de pakketten van Ubuntu bij om de Docker repository op te nemen.

sudo apt-get update

Installeer tenslotte Docker Engine.

sudo apt-get install docker-ce

Als je een andere Linux distributie zoals Debian of Fedora gebruikt, volg dan de officiële documentatie voor Docker installeren in Linux.

Windows 10/11

Docker is beschikbaar op Windows 10 of 11 met Windows Subsystem for Linux versie 2 (WSL 2) als backend. Gebruik de volgende stappen om Docker te installeren.

Schakel eerst de Virtual Machine Platform feature in op je Windows systeem. Hierdoor kun je WSL 2 installeren en een gevirtualiseerde Linux instantie op je Windows machine installeren en draaien.

Installeer vervolgens WSL.

Ga vervolgens naar de Microsoft Store om Ubuntu 20.04 te downloaden.

Download ten slotte Docker Desktop voor Windows. Open het gedownloade bestand om het installatieproces te starten.

Zoek na de installatie “Docker Desktop” in je taakbalk en open het.

(Opmerking: Je moet PowerShell als terminal gebruiken om Docker commando’s te gebruiken)

macOS X

Docker is beschikbaar op macOS machines via de Apple App Store. Er zijn twee installateurs beschikbaar die gericht zijn op zowel Intel als Apple chips.

Download eerst het juiste installatieprogramma van een van de bovenstaande links. Dubbelklik vervolgens om het gedownloade .dmg bestand te openen.

Sleep vervolgens het Docker pictogram naar de map Applications.

Open nu de Docker app vanuit de map Applications en volg de aanwijzingen om de configuratie te voltooien.

Zodra het installatieproces is voltooid, dubbelklik je op het Docker pictogram in de statusbalk van je bureaublad om het te openen.

Gebruik de standaard terminal om Docker commando’s uit te voeren.

2. Een MariaDB image downloaden

Een Docker image biedt een verzameling commando’s en configuraties om een Docker container te maken. Het is verantwoordelijk voor het installeren van alles wat nodig is om een applicatie te draaien. Je kunt de officiële image van MariaDB vinden op Docker Hub.

Om het image van MariaDB te downloaden van Docker Hub, moet je het commando docker pull gebruiken:

docker pull mariadb

Je kunt ook een lijst van gedownloade Docker images bekijken door het volgende uit te voeren:

docker images

Dit is de uitvoer van het commando:

Docker images listen.
Docker images listen.

3. Een container aanmaken

Een container is een software unit met alle code, afhankelijkheden en systeemtools die nodig zijn om een proces of programma te draaien. Je zult het eerder gedownloade image gebruiken om een MariaDB container te maken.

docker create mariadb --name mariadb-wp -i –t

Dit maakt een MariaDB container genaamd mariadb-wp. De–i vlag maakt een interactieve sessie mogelijk, en de optie –t maakt een pseudo-terminal aan. De officiële documentatie geeft informatie over alle beschikbare variabelen.

4. De container draaien, pauzeren en stoppen

Docker geeft ontwikkelaars de flexibiliteit van configureerbare omgevingen. In deze sectie zullen we de container van MariaDB configureren met omgevingsvariabelen om specifieke systeemeigenschappen voor je container in te stellen.

MariaDB heeft veel variabelen die je kunt instellen, zoals databasenamen, wachtwoorden en databasegebruikers. Voor een bredere lijst van ondersteunde omgevingsvariabelen, zie de Docker documentatie voor MariaDB.

docker run -d --name mariadb-wp -p 3306:3306 -v '/path/on/host/:/var/lib/mysql' -e "MARIADB_ROOT_PASSWORD=" -e "MARIADB_DATABASE=wordpress" -e "MARIADB_USER=wordpress" -e "MARIADB_PASSWORD=" mariadb

Het bovenstaande commando stelt MariaDB’s rootwachtwoord, databasegebruiker en bijbehorend wachtwoord in. Vervolgens draait MariaDB op poort 3306. Je kunt besluiten de applicatie van een container te pauzeren met het volgende commando:

docker pause mariadb-wp

Tenslotte kun je een applicatie die in een container draait ook stoppen met het volgende commando:

docker stop mariadb-wp

5. De gecontaineriseerde MariaDB met een WordPress site verbinden

Nu moeten we MariaDB verbinden met een externe WordPress website. Je kunt hier meer leren over het lokaal maken van een WordPress website.

Open in de hoofdmap van de WordPress website het bestand wp-config.php in je code editor. Zoek het codegedeelte dat de variabelen voor de database definieert en bewerk het, zoals hieronder. Zorg ervoor dat je de databasenaam, het wachtwoord en het poortnummer gebruikt bij het aanmaken van de MariaDB container.

define('DB_NAME', 'wordpress');

define('DB_USER', 'wordpress’);

define('DB_PASSWORD', '');

define('DB_HOST', 'http://localhost:3306’);

Vervolgens moet je een database dump van je WordPress website importeren in de gecontaineriseerde MariaDB. Zorg er eerst voor dat je de huidige database voor de website hebt geëxporteerd. Bekijk voor meer informatie onze MySQL database backup tutorial.

Na het exporteren van je database installeer je de databasedump in de container.

docker exec -i mariadb-wp sh -c 'exec mysql -u root -p "$MARIADB_ROOT_PASSWORD" < /some/path/on/your/host/all-databases.sql'

Met het commando docker exec kunnen ontwikkelaars shell commando’s in de container uitvoeren. We importeren een database in MariaDB met behulp van een geëxporteerd bestand in het bovenstaande commando.

6. Een nieuw bericht toevoegen aan je WordPress site

We maken een voorbeeldbericht aan met de WordPress adminaccount om deze integratie te testen.

Log eerst in op WordPress en klik op Posts > Add New. Vul de onderstaande gegevens in en klik dan op Publish. Klik na het aanmaken van het bericht op View Post om het nieuw toegevoegde bericht te bekijken.

Een nieuwe post toevoegen in de WordPress Gutenberg-editor.
Een nieuwe post toevoegen in de WordPress editor.

En dat is alles!

7. MariaDB en Docker met DevKinsta

Met de gratis applicatie van Kinsta, DevKinsta, kunnen ontwikkelaars efficiënt gecontaineriseerde WordPress sites maken. De app gebruikt Docker om PHP versies, databaseservers en webservers te configureren. De DevKinsta App ondersteunt ontwikkelaars die macOS, Windows en Ubuntu/Linux gebruiken.

Om te beginnen download, installeer en start je DevKinsta op je lokale machine. De app geeft je drie opties: maak een nieuwe WordPress site, importeer een bestaande van Kinsta, of maak een aangepaste site.

DevKinsta's nieuwe create new site scherm.
DevKinsta’s nieuwe create new site scherm.

Het maken van een nieuwe WordPress site is niet meer dan het invullen van een eenvoudig formulier en het klikken op Create site.

DevKinsta's nieuwe scherm voor het maken van een WordPress site.
DevKinsta’s nieuwe scherm voor het maken van een WordPress site.

Gefeliciteerd – je hebt nu een gecontaineriseerde WordPress website gemaakt met behulp van DevKinsta!

Samenvatting

Docker is een ontwikkelaarsvriendelijke tool voor het containeriseren van software waarop databaseservers zoals MariaDB draaien. Zijn minimalistische omgevingen helpen de efficiëntie van systeemresources te behouden zonder aan functionaliteit in te boeten.

In deze tutorial heb je geleerd hoe je Docker installeert, MariaDB instelt en een WordPress site verbindt met je gecontaineriseerde MariaDB database. Bovendien heb je geleerd hoe je DevKinsta kunt gebruiken om een volledig gecontaineriseerde WordPress website te maken.

Er valt nog veel meer te ontdekken met het maken van WordPress sites en de vele hostingoplossingen. Als je wilt ontdekken hoe eenvoudig het beheer van je site kan zijn, kun je terecht bij Kinsta’s managed WordPress hosting.

Salman Ravoof

Salman Ravoof is a self-taught web developer, writer, creator, and a huge admirer of Free and Open Source Software (FOSS). Besides tech, he's excited by science, philosophy, photography, arts, cats, and food. Learn more about him on his website, and connect with Salman on Twitter.