Hur man distribuerar WordPress i Docker-containrar
Lär dig hur du kör en WordPress-installation i Docker- containrar, både manuellt och med Docker Compose. WordPress-utvecklare kommer att finna det användbart att köra WordPress i Docker-containrar. Docker gör det enkelt att testa flera WordPress-konfigurationer och starta en ny WordPress-installation med bara några enkla kommandon.
Krav
För att WordPress ska fungera smidigt i Docker-containrar behöver du en aktuell och stödd Linux-distribution. Äldre versioner som CentOS 7 eller Ubuntu 14.04 är föråldrade och bör ersättas med moderna alternativ. Rekommenderade alternativ är bland annat:
- Ubuntu 22.04 LTS eller nyare
- Debian 12 eller nyare
- En aktuell version av Red Hat Enterprise Linux (RHEL) eller AlmaLinux
Du måste också ha Docker installerat och klart att använda. Minimikravet är Docker 20.10 eller högre för att kunna dra nytta av de senaste säkerhets- och prestandaförbättringarna. Om du vill använda Docker Compose måste du se till att du använder minst version 2.x, eftersom äldre versioner inte längre underhålls aktivt.
Grundläggande kunskaper om kommandorader och förtrogenhet med Docker Compose och Docker är till hjälp. Om du planerar en större eller skalbar installation är det värt att utforska Kubernetes för professionell containerorkestrering.
Hur man kör WordPress i Docker-containrar
En lyckad WordPress-installation består av tre delar:
- WordPress-programvaran
- En MySQL- eller MariaDB-databas
- De sista installationsstegen slutförs i en webbläsare
I exemplen nedan körs WordPress och MySQL/MariaDB i separata, länkade containrar. Containern som kör WordPress-programvaran mappas till en port på värden så att du kan komma åt den via en webbläsare.
Köra en MySQL/MariaDB-container
När Docker körs är det första steget att konfigurera databasen. Börja med att köra en container med namnet my-db. Du kan använda antingen MySQL eller MariaDB, som är en direkt ersättning för MySQL.
MySQL
Starta en container med följande kommando:
sudo docker run --name my-db -e MYSQL_ROOT_PASSWORD=SECURE_PASSWORD -d mysql:latestMariaDB
Starta en container med följande kommando:
sudo docker run --name my-db -e MYSQL_ROOT_PASSWORD=SECURE_PASSWORD -d mariadb:latestSkapa en databas
När du har skapat din container måste du skapa en databas för din WordPress-installation.
MySQL
Anslut till din nyskapade databasbehållare med följande kommando:
docker exec -it my-db mysql -u root -pSkapa en databas:
CREATE Database wordpress-db;MariaDB
Anslut till din nyskapade databasbehållare med följande kommando:
docker exec -it my-db mariadb -u root -pSkapa en databas:
CREATE Database wordpress-db;Köra en WordPress-container
Kör sedan en container med den officiella WordPress-bilden. Den kommer att mappas till värdport 8080 och länkas till databascontainern.
Två anmärkningar:
- Om du har en brandvägg kan du behöva tillåta åtkomst till port 8080.
- Om en annan tjänst redan körs på port 8080 kan du välja en annan port på värden.
Kommandot varierar något beroende på om du använder MySQL eller MariaDB:
MySQL
Starta en WordPress-container med följande kommando:
sudo docker run --name my-wordpress -p 8080:80 --link my-db:mysql -d wordpress:latestMariaDB
Starta en WordPress-container med kommandot:
sudo docker run --name my-wordpress -p 8080:80 --link my-db:mariadb -d wordpress:latestDet finns många andra miljövariabler som du kan lägga till i det här kommandot om du vill åsidosätta standardinställningarna, bland annat:
-e WORDPRESS_DB_HOST=[hostname]: Standardinställningen är IP-adressen och porten för den länkade MySQL/MariaDB-containern. Med denna variabel kan du ansluta till en MySQL/MariaDB-databas på en annan server.-e WORDPRESS_DB_USER=[username]: Standardvärdet ärroot.-e WORDPRESS_DB_PASSWORD=[password]: Standardvärdet ärMYSQL_ROOT_PASSWORDfrån den länkade MySQL/MariaDB-containern.-e WORDPRESS_DB_NAME=[name]: Standardvärdet är"wordpress".
För ökad säkerhet kan det vara bra att inte köra containrar på standardbryggnätverket. Istället kan du skapa ett anpassat nätverk:
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:latestHär är dina containrar mer isolerade från andra, vilket minskar risken för oönskade anslutningar. Du kan också konfigurera nätverksregler mer detaljerat, till exempel genom att använda anpassade brandväggsinställningar eller distribuera en omvänd proxy.
Hur man slutför installationen i en webbläsare
För de sista installationsstegen måste du öppna WordPress-containern med en webbläsare.
I exemplet ovan mappade vi port 8080 på värden till port 80 (webbtjänster) i containern. Det innebär att du nu kan komma åt containern via din webbläsare antingen genom serverns IP-adress eller ett domännamn:
http://<server-ip>:8080http://example.com:8080
Öppna webbadressen i din webbläsare, välj installationsspråk och klicka på Fortsätt.

På nästa skärm visas ett meddelande som förbereder dig för nästa steg i installationen. Klicka på knappen Kom igång! för att fortsätta.

Ange nu din databasinformation så att filen wp-config.php kan skapas:

Observera att standardanvändaren är “root” om inte annat anges. Ange namnet på den databas du skapade och det lösenord du valde. Klicka på “Skicka” för att gå vidare till nästa steg i installationen.

- Webbplatsens titel: Ange titeln på din webbplats.
- Användarnamn: Detta är det primära administratörsanvändarnamnet för din webbplats. Tips: Av säkerhetsskäl rekommenderar vi att du inte använder “Admin” eller ditt domännamn/URL.
- Lösenord: Se till att skriva ner detta innan du fortsätter.
- Din e-postadress: Detta är den e-postadress som är kopplad till administratörskontot.
Klicka sedan på knappen Installera WordPress för att slutföra installationen.

När installationen är klar visas ett bekräftelsemeddelande och du kan sedan logga in på WordPress.
Hur man kör WordPress med Docker Compose
Att använda Docker Compose är ett annat sätt att köra WordPress. Du hittar installations- och användningsinstruktioner i vår artikel om Docker-orkestrering med Swarm och Compose. I huvudsak låter verktyget dig definiera alla nödvändiga tjänster i en enda fil och starta dem tillsammans.
Skapa YAML-filen
Skapa först en katalog för ditt projekt och navigera till den:
sudo mkdir wordpress
cd wordpressSkapa en YAML-fil med namnet docker-compose.yml med följande kommando:
sudo nano docker-compose.ymlInnehållet i filen varierar något beroende på om du använder MySQL eller MariaDB:
MySQL
Lägg till följande innehåll i filen:
wordpress:
image: wordpress:latest
links:
- wordpress_db:mysql
ports:
- 8080:80
wordpress_db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: SECURE_PASSWORDSpara och stäng filen.
MariaDB
Lägg till följande innehåll i filen:
wordpress:
image: wordpress:latest
links:
- wordpress_db:mariadb
ports:
- 8080:80
wordpress_db:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: SECURE_PASSWORDSpara och stäng filen.
Starta containrarna
Använd sedan Docker Compose för att starta containrarna med följande kommando:
sudo docker-compose up -dAnvänd följande kommando för att kontrollera om behållarna har skapats:
sudo docker-compose psFör att slutföra installationen, besök WordPress-containern i en webbläsare. Du kan använda antingen serverns IP-adress eller dess URL:
http://192.168.0.1:8080http://example.com:8080
Kubernetes för skalbara WordPress-distributioner
För större installationer och produktionsmiljöer kan Kubernetes (K8s) användas. Kubernetes gör det möjligt att samordna och automatiskt hantera WordPress-containrar över flera noder. Att använda ett Kubernetes-kluster erbjuder flera fördelar, såsom automatisk skalning, självläkande mekanismer och centraliserad resurshantering. Ett sätt att implementera detta är med Helm, en pakethanterare för Kubernetes:
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install my-wordpress bitnami/wordpress --set service.type=LoadBalancerDetta möjliggör en högt tillgänglig, skalbar WordPress-distribution med lastbalansering, automatiska uppdateringar och stöd för failover.