Heb je een WordPress website en wil je wél de snelheid van een eigen server, maar niet het onderhoud en configuratie die bij een server komen kijken? Draai WordPress in Docker containers! In dit artikel leggen we je uit hoe je eenvoudig een Docker-omgeving opzet.

Ben je nieuw met Docker? Dan zijn er drie basisregels die je moet kennen:

  • De applicatie WordPress draait in een container, dat is een geïsoleerde omgeving die op je server draait. Deze omgeving bevat een minimaal besturingssysteem, met alleen de tools die je nodig hebt om de applicatie te draaien (dus in het geval van WordPress alleen een webserver). Deze container maak je aan op basis van image van WordPress, dat je kant en klaar kunt downloaden.
  • Gebruikersdata, dus alle data die standaard geen onderdeel uitmaakt van WordPress, sla je op buiten je container. Uitganspunt van Docker is dat een container vervangen of verwijderd moet kunnen worden zonder verlies van gebruikersdata. Redenen om je container te vervangen met een container op basis van een nieuw image kunnen zijn:
    • Je wilt een nieuwere versie van je applicatie (in dit geval WordPress) draaien.
    • Je hebt een image gevonden/gemaakt met een betere configuratie, waardoor je applicatie sneller of stabieler werkt.
  • Eén container verzorgt één proces. Om schaalbaarheid en flexibiliteit van je applicatie te waarborgen, moet een container idealiter maar één proces draaien. In het geval van WordPress betekent dat, dat je één container met WordPress wilt en één container waarin de MySQL-database draait.

Stap 1: Voorbereiding van je server

Heb je al de beschikking over een server? Mooi, dan hoeft alleen Docker geïnstalleerd te worden. Heb je nog geen server? Dan kan je eenvoudig serverhosting aanvragen bij diverse partijen. Wij hebben goede ervaringen met TransIP, waar je vanaf €10 per maand een prima server kunt afnemen. Wij adviseren je om te kiezen voor een server met CentOS en een minimale installatie te gaan. Heb je hier hulp bij nodig? Wij verzorgen graag het opzetten van een VPS voor gebruik met Docker.

Maak je gebruik van de Linux-distributie CentOS? Dan kan je Docker installeren door, nadat je bent ingelogd als root, het volgende commando op de commandline uit te voeren:

yum install docker

Maak je gebruik van een andere distributie? Raadpleeg dan de documentatie van Docker zelf voor instructies over het installeren van Docker.

Stap 2: Docker containers configureren

Is Docker helemaal nieuw voor je? Lees dan ook ons hoofdartikel over Docker. Veelgebruikte termen worden daar verder uitgelegd.

Zodra Docker op je server is geïnstalleerd, kan je direct aan de slag. Er zijn twee zaken die moeten gebeuren:

Een projectmap en een volume aanmaken

De Docker-containers gaan we opstarten op basis van een configuratiebestand. Het is handig om een projectmap aan te maken waarin je dat configuratiebestand kunt bewaren. Voor het overzicht is het prettig om in deze nog aan te maken projectmap ook de gebruikersdata van je applicatie op te staan. Daarmee zorg je ervoor dat je data buiten de container wordt opgeslagen. In het geval van WordPress bevat de map wp-content alle gebruikersdata. Alle overige mappen zijn standaard onderdeel van de WordPress-applicatie en zullen in de container draaien.

Het maakt voor Docker in principe niet uit waar je de projectmap aanmaakt, maar omdat Docker altijd met root-rechten draait, is het niet logisch om de projectmap in de /home-directory aan te maken. Maak bijvoorbeeld de map /var/docker/wordpress aan als je projectmap en /var/docker/wordpress/wp-content als de map waarin alle niet-voorgeinstalleerde data komt:

mkdir /var/docker/wordpress && mkdir /var/docker/wordpress/wp-content

Is het aanmaken van de mappen geslaaagd? Dan kunnen we nu de configuratie voor je Docker-containers schrijven!

Je containerconfiguratie aanmaken: docker-compose.yml

Omdat we meerdere containers nodig hebben, maken van gebruik van docker-compose. Daarmee kan je eenvoudig meerdere containers tegelijkertijd beheren. Docker-compose heeft een configuratiebestand nodig waarin aangegeven wordt welke containers bij elkaar horen, welke versies van je applicaties je wilt draaien en waar je de data wilt opslaan.

wordpress:latest
image: wordpress:latest
volumes:
/var/docker/wordpress/wp-content:/var/www/html/wp-content:rw
links:
– wordpress_db:mysql

wordpress_db:
image: mariadb
volumes:
/var/docker/wordpress/mysql:/var/lib/mysql:rw
environment:
MYSQL_ROOT_PASSWORD: bedenk-een-sterk-wachtwoord

Bovenstaande is een beknopte, maar werkende configuratie om een eenvoudige WordPress-configuratie op te zetten. Alle standaard configuratie uit het WordPress image wordt gebruikt. Wil je een andere configuratie gebruiken? Dan kan je gebruik maken van een aantal environment variables die beschreven staan de WordPress repository voor Docker.

Maak het bestand docker-compose.yml aan in de projectmap en voeg bovenstaande regels aan het bestand toe.

Stap 3: Start je Docker-containers en begin met WordPress!

Alles gelukt en docker-compose.yml is aangemaakt? Dan kan je de hele installatie met één simpel commando opstarten. Voor onderstaande commando uit vanuit je projectmap:

docker-compose up

Als je geen afwijkende poort meegeeft in docker-compose.yml, dan draait WordPress standaard op poort 80. Dat betekent dat je WordPress nu kunt starten door naar http://het-ip-adres-van-je-server of http://domeinnaam.nl te gaan. In dat laatste geval moet je je domeinnaam uiteraard wel d.m.v. de DNS naar je server verwijzen.

Vragen?

Deze handleiding laat kort zien hoe je snel aan de slag kunt, maar er zijn ongekend veel meer mogelijkheden. Zo kan je WordPress bijvoorbeeld op andere PHP-versies draaien als dat nodig is, of je kunt SSL toevoegen voor de veiligheidtoevoegen op Redis voor de performance. Daarnaast kan het zijn dat je meerdere (WordPress-)websites of andere applicaties naast elkaar wilt draaien die op poort 80 benaderbaar moeten zijn. Wil je de hulp van AllesLinux.com inschakelen? Kijk dan op de pagina Linux Support of stel je vraag op ons Linux forum.