Leer hoe u een WordPress-installatie in Docker -containers kunt uitvoeren, zowel handmatig als met Docker Compose. WordPress-ontwikkelaars zullen het handig vinden om WordPress in Docker-containers uit te voeren. Met Docker kunt u eenvoudig meerdere WordPress-configuraties testen en een nieuwe WordPress-installatie starten met slechts een paar eenvoudige commando’s.

Vereisten

Om WordPress soepel te laten draaien in Docker-containers, heb je een actuele en ondersteunde Linux-distributie nodig. Oudere versies zoals CentOS 7 of Ubuntu 14.04 zijn verouderd en moeten worden vervangen door moderne alternatieven. Aanbevolen opties zijn onder andere:

  • Ubuntu 22.04 LTS of nieuwer
  • Debian 12 of nieuwer
  • Een huidige versie van Red Hat Enterprise Linux (RHEL) of AlmaLinux

Je moet ook Docker geïnstalleerd en klaar voor gebruik hebben. De minimale vereiste is Docker 20.10 of hoger om te kunnen profiteren van de nieuwste beveiligings- en prestatieverbeteringen. Als je Docker Compose wilt gebruiken, zorg er dan voor dat je minimaal versie 2.x gebruikt, aangezien oudere versies niet langer actief worden onderhouden.

Basiskennis van de opdrachtregel en bekendheid met Docker Compose en Docker zijn nuttig. Als u een grotere of schaalbare opstelling plant, is het de moeite waard om Kubernetes te verkennen voor professionele containerorkestratie.

Hoe WordPress in Docker-containers uitvoeren

Een succesvolle WordPress-installatie bestaat uit drie elementen:

  • De WordPress-software
  • Een MySQL- of MariaDB-database
  • De laatste installatiestappen worden voltooid in een browser

In de onderstaande voorbeelden worden WordPress en MySQL/MariaDB in afzonderlijke, gekoppelde containers uitgevoerd. De container waarin de WordPress-software wordt uitgevoerd, wordt toegewezen aan een poort op de host, zodat u er via een browser toegang toe hebt.

Een MySQL/MariaDB-container uitvoeren

Zodra Docker draait, is de eerste stap het instellen van de database. Begin met het uitvoeren van een container met de naam my-db. U kunt MySQL of MariaDB gebruiken, een directe vervanging voor MySQL.

MySQL

Start een container met het volgende commando:

sudo docker run --name my-db -e MYSQL_ROOT_PASSWORD=SECURE_PASSWORD -d mysql:latest

MariaDB

Start een container met het volgende commando:

sudo docker run --name my-db -e MYSQL_ROOT_PASSWORD=SECURE_PASSWORD -d mariadb:latest

Een database aanmaken

Nadat u uw container hebt aangemaakt, moet u een database aanmaken voor uw WordPress-installatie.

MySQL

Maak verbinding met uw nieuw aangemaakte databasecontainer met behulp van het volgende commando:

docker exec -it my-db mysql -u root -p

Maak een database aan:

CREATE Database wordpress-db;

MariaDB

Maak verbinding met uw nieuw aangemaakte databasecontainer met behulp van het volgende commando:

docker exec -it my-db mariadb -u root -p

Maak een database aan:

CREATE Database wordpress-db;

Een WordPress-container uitvoeren

Start vervolgens een container met behulp van de officiële WordPress-image. Deze wordt toegewezen aan hostpoort 8080 en gekoppeld aan de databasecontainer.

Twee opmerkingen:

  • Als u een firewall hebt, moet u mogelijk toegang tot poort 8080 toestaan.
  • Als er al een andere service op poort 8080 draait, kunt u een andere poort op de host kiezen.

Het commando verschilt enigszins, afhankelijk van of u MySQL of MariaDB gebruikt:

MySQL

Start een WordPress-container met behulp van de volgende opdracht:

sudo docker run --name my-wordpress -p 8080:80 --link my-db:mysql -d wordpress:latest

MariaDB

Start een WordPress-container met behulp van het commando:

sudo docker run --name my-wordpress -p 8080:80 --link my-db:mariadb -d wordpress:latest

Er zijn nog veel meer omgevingsvariabelen die u aan deze opdracht kunt toevoegen als u de standaardinstellingen wilt overschrijven, waaronder:

  • -e WORDPRESS_DB_HOST=[hostname]: De standaardinstelling is het IP-adres en de poort van de gekoppelde MySQL/MariaDB-container. Met deze variabele kunt u verbinding maken met een MySQL/MariaDB-database op een andere server.
  • -e WORDPRESS_DB_USER=[username]: De standaardwaarde is root.
  • -e WORDPRESS_DB_PASSWORD=[password]: De standaardinstelling is de MYSQL_ROOT_PASSWORD omgevingsvariabele van de gekoppelde MySQL/MariaDB-container.
  • -e WORDPRESS_DB_NAME=[name]: De standaardwaarde is "wordpress".

Voor een betere beveiliging kan het nuttig zijn om containers niet op het standaard bridge-netwerk te draaien. In plaats daarvan kunt u een aangepast netwerk maken:

docker network create my-wp-network
docker run --name my-db --network my-wp-network -e MYSQL_ROOT_PASSWORD=SECURE_PASSWORD -d mysql:latest
docker run --name my-wordpress --network my-wp-network -p 8080:80 -d wordpress:latest

Hier zijn uw containers beter geïsoleerd van andere containers, waardoor het risico op ongewenste verbindingen wordt verminderd. U kunt ook netwerkregels gedetailleerder configureren, bijvoorbeeld door aangepaste firewallinstellingen te gebruiken of een reverse proxy te implementeren.

Hoe voltooi je de installatie in een browser?

Voor de laatste installatiestappen moet u met een browser toegang krijgen tot de WordPress-container.

In het bovenstaande voorbeeld hebben we poort 8080 op de host toegewezen aan poort 80 (webservices) in de container. Dit betekent dat u nu via uw browser toegang hebt tot de container, hetzij via het IP-adres van de server, hetzij via een domeinnaam:

  • http://<server-ip>:8080
  • http://example.com:8080

Ga naar de URL in uw browser, selecteer de taal waarin u het programma wilt installeren en klik op Doorgaan.

Afbeelding: Screenshot showing the WordPress language selection
You can now select your installation language in the browser.

Op het volgende scherm zie je een bericht dat je voorbereidt op de volgende stap van de installatie. Klik op de knop Let’s go! om door te gaan.

Afbeelding: Screenshot of the WordPress installation prompt
The WordPress installation prompt informs you about the next setup step.

Voer nu uw database-informatie in, zodat het wp-config.php -bestand kan worden aangemaakt:

Afbeelding: Screenshot of the WordPress database connection
Enter the requested information for your database.

Houd er rekening mee dat de standaardgebruiker ‘root’ is, tenzij anders aangegeven. Voer de naam van de database die u hebt aangemaakt en het wachtwoord dat u hebt gekozen in. Als u op ‘Verzenden’ klikt, wordt u door de volgende stappen van de installatie geleid.

Afbeelding: Screenshot of the WordPress installation: site info
Enter the requested information about your WordPress site.
  • Sitetitel: Voer de titel van uw website in.
  • Gebruikersnaam: Dit is de primaire beheerdersgebruikersnaam voor uw website. Tip: Om veiligheidsredenen raden we u aan om ‘Admin’ of uw domeinnaam/URL niet te gebruiken.
  • Wachtwoord: Noteer dit wachtwoord voordat u verdergaat.
  • Uw e-mailadres: Dit is het e-mailadres dat aan het beheerdersaccount is gekoppeld.

Klik vervolgens op de knop WordPress installeren om de installatie te voltooien.

Afbeelding: Screenshot of the successful WordPress installation
The success message shows the installation was successful.

Zodra de installatie is voltooid, krijgt u een bevestigingsbericht te zien en kunt u inloggen op WordPress.

Hoe WordPress met Docker Compose uit te voeren

Het gebruik van Docker Compose is een andere manier om WordPress uit te voeren. Instructies voor installatie en gebruik vindt u in ons artikel over Docker-orkestratie met Swarm en Compose. In essentie kunt u met deze tool alle benodigde services in één bestand definiëren en ze samen starten.

Het YAML-bestand aanmaken

Maak eerst een map voor uw project en ga daarheen:

sudo mkdir wordpress
cd wordpress

Maak een YAML-bestand met de naam docker-compose.yml aan met behulp van de volgende opdracht:

sudo nano docker-compose.yml

De inhoud van het bestand verschilt enigszins, afhankelijk van of u MySQL of MariaDB gebruikt:

MySQL

Voeg de volgende inhoud toe aan het bestand:

wordpress:
    image: wordpress:latest
    links:
        - wordpress_db:mysql
    ports:
        - 8080:80
wordpress_db:
    image: mysql
    environment:
        MYSQL_ROOT_PASSWORD: SECURE_PASSWORD

Sla het bestand op en sluit het af.

MariaDB

Voeg de volgende inhoud toe aan het bestand:

wordpress:
    image: wordpress:latest
    links:
        - wordpress_db:mariadb
    ports:
        - 8080:80
wordpress_db:
    image: mariadb
    environment:
        MYSQL_ROOT_PASSWORD: SECURE_PASSWORD

Sla het bestand op en sluit het af.

De containers starten

Gebruik vervolgens Docker Compose om de containers te starten met de volgende opdracht:

sudo docker-compose up -d

Gebruik de volgende opdracht om te controleren of de containers zijn aangemaakt:

sudo docker-compose ps

Om de installatie te voltooien, gaat u naar de WordPress-container in een browser. U kunt het IP-adres van de server of de URL gebruiken:

  • http://192.168.0.1:8080
  • http://example.com:8080

Kubernetes voor schaalbare WordPress-implementaties

Voor grotere en productieklaar opstellingen kan Kubernetes (K8s) worden gebruikt. Met Kubernetes kunt u WordPress-containers over meerdere knooppunten heen coördineren en automatisch beheren. Het gebruik van een Kubernetes-cluster biedt verschillende voordelen, zoals automatische schaalbaarheid, zelfherstellende mechanismen en gecentraliseerd resourcebeheer. Een manier om dit te implementeren is met Helm, een pakketbeheerder voor Kubernetes:

helm repo add bitnami https://charts.bitnami.com/bitnami
helm install my-wordpress bitnami/wordpress --set service.type=LoadBalancer

Dit maakt een zeer beschikbare, schaalbare WordPress-implementatie mogelijk met load balancing, automatische updates en failover-ondersteuning.

Ga naar hoofdmenu