Hoe WordPress in Docker-containers te implementeren
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:latestMariaDB
Start een container met het volgende commando:
sudo docker run --name my-db -e MYSQL_ROOT_PASSWORD=SECURE_PASSWORD -d mariadb:latestEen 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 -pMaak 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 -pMaak 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:latestMariaDB
Start een WordPress-container met behulp van het commando:
sudo docker run --name my-wordpress -p 8080:80 --link my-db:mariadb -d wordpress:latestEr 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 isroot.-e WORDPRESS_DB_PASSWORD=[password]: De standaardinstelling is deMYSQL_ROOT_PASSWORDomgevingsvariabele 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:latestHier 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>:8080http://example.com:8080
Ga naar de URL in uw browser, selecteer de taal waarin u het programma wilt installeren en klik op Doorgaan.

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.

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

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.

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

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 wordpressMaak een YAML-bestand met de naam docker-compose.yml aan met behulp van de volgende opdracht:
sudo nano docker-compose.ymlDe 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_PASSWORDSla 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_PASSWORDSla 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 -dGebruik de volgende opdracht om te controleren of de containers zijn aangemaakt:
sudo docker-compose psOm 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:8080http://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=LoadBalancerDit maakt een zeer beschikbare, schaalbare WordPress-implementatie mogelijk met load balancing, automatische updates en failover-ondersteuning.