Sådan installeres WordPress i Docker-containere
Lær, hvordan du kører en WordPress-installation i Docker-containere, både manuelt og med Docker Compose. WordPress-udviklere vil finde det nyttigt at køre WordPress i Docker-containere. Docker gør det nemt at teste flere WordPress-konfigurationer og starte en ny WordPress-installation med blot et par enkle kommandoer.
Krav
For at WordPress kan køre problemfrit i Docker-containere, skal du have en opdateret og understøttet Linux-distribution. Ældre versioner som CentOS 7 eller Ubuntu 14.04 er forældede og bør udskiftes med moderne alternativer. Anbefalede muligheder er blandt andet:
- Ubuntu 22.04 LTS eller nyere
- Debian 12 eller nyere
- En aktuel version af Red Hat Enterprise Linux (RHEL) eller AlmaLinux
Du skal også have Docker installeret og klar til brug. Minimumskravet er Docker 20.10 eller nyere for at kunne drage fordel af de seneste sikkerheds- og ydeevneforbedringer. Hvis du vil bruge Docker Compose, skal du sikre dig, at du bruger mindst version 2.x, da ældre versioner ikke længere vedligeholdes aktivt.
Grundlæggende kendskab til kommandolinjen samt erfaring med Docker Compose og Docker er en fordel. Hvis du planlægger en større eller skalerbar løsning, kan det være en god idé at se nærmere på Kubernetes, som tilbyder containerorkestrering i professionel kvalitet.
Sådan kører du WordPress i Docker-containere
En vellykket WordPress-installation består af tre elementer:
- WordPress-softwaren
- En MySQL- eller MariaDB-database
- De sidste installationstrin udføres i en browser
I eksemplerne nedenfor kører WordPress og MySQL/MariaDB i separate, sammenkoblede containere. Den container, der kører WordPress-softwaren, vil blive tilknyttet en port på værtscomputeren, så du kan få adgang til den via en browser.
Kørsel af en MySQL/MariaDB-container
Når Docker er i gang, er det første skridt at opsætte databasen. Start med at køre en container ved navn my-db. Du kan enten bruge MySQL eller MariaDB, som er en direkte erstatning for MySQL.
MySQL
Start en container med følgende kommando:
sudo docker run --name my-db -e MYSQL_ROOT_PASSWORD=SECURE_PASSWORD -d mysql:latestMariaDB
Start en container med følgende kommando:
sudo docker run --name my-db -e MYSQL_ROOT_PASSWORD=SECURE_PASSWORD -d mariadb:latestOprettelse af en database
Når du har oprettet din container, skal du oprette en database til din WordPress-installation.
MySQL
Opret forbindelse til din nyoprettede databasecontainer ved hjælp af følgende kommando:
docker exec -it my-db mysql -u root -pOpret en database:
CREATE Database wordpress-db;MariaDB
Opret forbindelse til din nyoprettede databasecontainer ved hjælp af følgende kommando:
docker exec -it my-db mariadb -u root -pOpret en database:
CREATE Database wordpress-db;Sådan kører du en WordPress-container
Kør derefter en container ved hjælp af det officielle WordPress-billede. Den vil blive tilknyttet værtsport 8080 og koblet til databasecontaineren.
To bemærkninger:
- Hvis du har en firewall, skal du muligvis give adgang til port 8080.
- Hvis en anden tjeneste allerede kører på port 8080, kan du vælge en anden port på værten.
Kommandoen varierer en smule, afhængigt af om du bruger MySQL eller MariaDB:
MySQL
Start en WordPress-container ved hjælp af følgende kommando:
sudo docker run --name my-wordpress -p 8080:80 --link my-db:mysql -d wordpress:latestMariaDB
Start en WordPress-container ved hjælp af kommandoen:
sudo docker run --name my-wordpress -p 8080:80 --link my-db:mariadb -d wordpress:latestDer er mange andre miljøvariabler, du kan tilføje til denne kommando, hvis du ønsker at tilsidesætte standardindstillingerne, herunder:
-e WORDPRESS_DB_HOST=[hostname]: Standardindstillingen er IP-adressen og porten for den tilknyttede MySQL/MariaDB-container. Denne variabel giver dig mulighed for at oprette forbindelse til en MySQL/MariaDB-database på en anden server.-e WORDPRESS_DB_USER=[username]: Standardværdien erroot.-e WORDPRESS_DB_PASSWORD=[password]: Standardværdien er miljøvariablenMYSQL_ROOT_PASSWORDfra den tilknyttede MySQL/MariaDB-container.-e WORDPRESS_DB_NAME=[name]: Standardværdien er"wordpress".
For at øge sikkerheden kan det være en god idé ikke at køre containere på standard-bridge-netværket. I stedet kan du oprette et brugerdefineret netværk:
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:latestHer er dine containere bedre isoleret fra hinanden, hvilket mindsker risikoen for uønskede forbindelser. Du kan også konfigurere netværksreglerne mere detaljeret, f.eks. ved at bruge brugerdefinerede firewall-indstillinger eller implementere en reverse proxy.
Sådan afslutter du installationen i en browser
For at gennemføre de sidste trin i installationen skal du åbne WordPress-containeren i en browser.
I eksemplet ovenfor har vi omdirigeret port 8080 på værten til port 80 (webtjenester) i containeren. Det betyder, at du nu kan få adgang til containeren via din browser enten ved hjælp af serverens IP-adresse eller et domænenavn:
http://<server-ip>:8080http://example.com:8080
Gå til webadressen i din browser, vælg installationssprog, og klik på Fortsæt.

På den næste skærm vises en besked, der forbereder dig på næste trin i opsætningen. Klik på knappen »Kom så!« for at fortsætte.

Indtast nu dine databaseoplysninger, så filen wp-config.php kan oprettes:

Bemærk, at standardbrugeren er »root«, medmindre andet er angivet. Indtast navnet på den database, du har oprettet, samt den adgangskode, du har valgt. Når du klikker på »Send«, bliver du guidet gennem de næste trin i installationen.

- Webstedsnavn: Indtast navnet på dit websted.
- Brugernavn: Dette er det primære administratorbrugernavn til din hjemmeside. Tip: Af sikkerhedsmæssige årsager anbefaler vi, at du ikke bruger ‘Admin’ eller dit domænenavn/din URL.
- Adgangskode: Sørg for at skrive denne ned, før du fortsætter.
- Din e-mail: Dette er den e-mailadresse, der er knyttet til administratorkontoen.
Klik derefter på knappen »Installer WordPress« for at afslutte installationen.

Når installationen er færdig, vises der en bekræftelsesmeddelelse, og du kan derefter logge ind på WordPress.
Sådan kører du WordPress med Docker Compose
Brug af Docker Compose er en anden måde at køre WordPress på. Du kan finde vejledning i installation og brug i vores artikel om Docker-orkestrering med Swarm og Compose. Kort sagt giver værktøjet dig mulighed for at definere alle nødvendige tjenester i én enkelt fil og starte dem alle på én gang.
Oprettelse af YAML-filen
Opret først en mappe til dit projekt, og gå ind i den:
sudo mkdir wordpress
cd wordpressOpret en YAML-fil med navnet docker-compose.yml ved hjælp af følgende kommando:
sudo nano docker-compose.ymlIndholdet af filen varierer en smule, afhængigt af om du bruger MySQL eller MariaDB:
MySQL
Indsæt følgende indhold i filen:
wordpress:
image: wordpress:latest
links:
- wordpress_db:mysql
ports:
- 8080:80
wordpress_db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: SECURE_PASSWORDGem filen og luk den.
MariaDB
Indsæt følgende indhold i filen:
wordpress:
image: wordpress:latest
links:
- wordpress_db:mariadb
ports:
- 8080:80
wordpress_db:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: SECURE_PASSWORDGem filen og luk den.
Start af containerne
Brug derefter Docker Compose til at starte containerne med følgende kommando:
sudo docker-compose up -dBrug følgende kommando til at kontrollere, om containerne er blevet oprettet:
sudo docker-compose psFor at afslutte installationen skal du åbne WordPress-containeren i en browser. Du kan enten bruge serverens IP-adresse eller dens URL:
http://192.168.0.1:8080http://example.com:8080
Kubernetes til skalerbare WordPress-installationer
Til større installationer og produktionsmiljøer kan man anvende Kubernetes (K8s). Kubernetes giver mulighed for at koordinere og automatisk administrere WordPress-containere på tværs af flere noder. Brug af et Kubernetes-cluster byder på flere fordele, såsom automatisk skalering, selvreparerende mekanismer og centraliseret ressourceadministration. En måde at implementere dette på er ved hjælp af Helm, en pakkehåndtering til Kubernetes:
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install my-wordpress bitnami/wordpress --set service.type=LoadBalancerDette muliggør en WordPress-installation med høj tilgængelighed og skalerbarhed, herunder belastningsfordeling, automatiske opdateringer og understøttelse af failover.