Lær hvordan du kjører en WordPress-installasjon i Docker-containere, både manuelt og med Docker Compose. WordPress-utviklere vil ha nytte av å kjøre WordPress i Docker-containere. Docker gjør det enkelt å teste flere WordPress-konfigurasjoner og starte en ny WordPress-installasjon med bare noen få enkle kommandoer.

Krav

For at WordPress skal fungere problemfritt i Docker-containere, trenger du en oppdatert og støttet Linux-distribusjon. Eldre versjoner som CentOS 7 eller Ubuntu 14.04 er utdaterte og bør erstattes med moderne alternativer. Anbefalte alternativer er blant annet:

  • Ubuntu 22.04 LTS eller nyere
  • Debian 12 eller nyere
  • En aktuell versjon av Red Hat Enterprise Linux (RHEL) eller AlmaLinux

Du må også ha Docker installert og klart til bruk. Minimumskravet er Docker 20.10 eller nyere for å kunne dra nytte av de nyeste sikkerhets- og ytelsesforbedringene. Hvis du ønsker å bruke Docker Compose, må du sørge for at du bruker minst versjon 2.x, siden eldre versjoner ikke lenger vedlikeholdes aktivt.

Grunnleggende kunnskap om kommandolinjen og kjennskap til Docker Compose og Docker er en fordel. Hvis du planlegger et større eller skalerbart oppsett, er det verdt å se nærmere på Kubernetes for profesjonell containerorkestrering.

Slik kjører du WordPress i Docker-containere

En vellykket WordPress-installasjon består av tre elementer:

  • WordPress-programvaren
  • En MySQL- eller MariaDB-database
  • De siste installasjonstrinnene fullføres i en nettleser

I eksemplene nedenfor vil WordPress og MySQL/MariaDB kjøre i separate, sammenkoblede containere. Containeren som kjører WordPress-programvaren, vil bli tilordnet en port på vertsmaskinen, slik at du kan få tilgang til den via en nettleser.

Kjøre en MySQL/MariaDB-container

Når Docker er i gang, er det første trinnet å konfigurere databasen. Begynn med å starte en container med navnet my-db. Du kan bruke enten 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:latest

MariaDB

Start en container med følgende kommando:

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

Opprette en database

Når du har opprettet containeren, må du opprette en database for WordPress-installasjonen din.

MySQL

Koble til den nyopprettede databasebeholderen ved hjelp av følgende kommando:

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

Opprett en database:

CREATE Database wordpress-db;

MariaDB

Koble til den nyopprettede databasebeholderen ved hjelp av følgende kommando:

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

Opprett en database:

CREATE Database wordpress-db;

Kjøre en WordPress-container

Deretter starter du en container ved hjelp av den offisielle WordPress-bilden. Den vil bli tilordnet vertsport 8080 og koblet til databasecontaineren.

To merknader:

  • Hvis du har en brannmur, må du kanskje gi tilgang til port 8080.
  • Hvis en annen tjeneste allerede kjører på port 8080, kan du velge en annen port på verten.

Kommandoen varierer litt avhengig av om du bruker MySQL eller MariaDB:

MySQL

Start en WordPress-container ved hjelp av følgende kommando:

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

MariaDB

Start en WordPress-container ved hjelp av følgende kommando:

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

Det finnes mange andre miljøvariabler du kan legge til i denne kommandoen hvis du ønsker å overstyre standardinnstillingene, blant annet:

  • -e WORDPRESS_DB_HOST=[hostname]: Standardverdien er IP-adressen og porten til den tilknyttede MySQL/MariaDB-containeren. Denne variabelen lar deg koble til en MySQL/MariaDB-database på en annen server.
  • -e WORDPRESS_DB_USER=[username]: Standardverdien er root.
  • -e WORDPRESS_DB_PASSWORD=[password]: Standardverdien er miljøvariabelen MYSQL_ROOT_PASSWORD fra den tilknyttede MySQL/MariaDB-containeren.
  • -e WORDPRESS_DB_NAME=[name]: Standardverdien er "wordpress".

For å øke sikkerheten kan det være lurt å ikke kjøre containere på standardbro-nettverket. I stedet kan du opprette et egendefinert nettverk:

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

Her er containerne dine bedre isolert fra andre, noe som reduserer risikoen for uønskede tilkoblinger. Du kan også konfigurere nettverksregler mer detaljert, for eksempel ved å bruke tilpassede brannmurinnstillinger eller ta i bruk en omvendt proxy.

Slik fullfører du installasjonen i en nettleser

For de siste trinnene i installasjonen må du åpne WordPress-containeren i en nettleser.

I eksemplet ovenfor har vi tilordnet port 8080 på verten til port 80 (webtjenester) i containeren. Dette betyr at du nå kan få tilgang til containeren via nettleseren din, enten ved hjelp av serverens IP-adresse eller et domenenavn:

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

Gå til nettadressen i nettleseren din, velg installasjonsspråk og klikk på «Fortsett».

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

På neste skjermbilde vises en melding som forbereder deg på neste trinn i oppsettet. Klikk på «La oss komme i gang! »-knappen for å fortsette.

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

Skriv nå inn databaseopplysningene dine, slik at filen wp-config.php kan opprettes:

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

Merk at standardbrukeren er «root», med mindre annet er angitt. Skriv inn navnet på databasen du opprettet og passordet du valgte. Når du klikker på «Send», blir du guidet gjennom de neste trinnene i installasjonen.

Image: Screenshot of the WordPress installation: site info
Enter the requested information about your WordPress site.
  • Nettstedstittel: Skriv inn tittelen på nettstedet ditt.
  • Brukernavn: Dette er det primære administratorbrukernavnet for nettstedet ditt. Tips: Av sikkerhetsgrunner anbefaler vi at du ikke bruker «Admin» eller domenenavnet/URL-en din.
  • Passord: Sørg for å skrive dette ned før du fortsetter.
  • E-postadresse: Dette er e-postadressen som er knyttet til administratorkontoen.

Klikk deretter på «Installer WordPress »-knappen for å fullføre installasjonen.

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

Når installasjonen er fullført, vises en bekreftelsesmelding, og du kan deretter logge inn på WordPress.

Slik kjører du WordPress med Docker Compose

Å bruke Docker Compose er en annen måte å kjøre WordPress på. Du finner instruksjoner for installasjon og bruk i artikkelen vår om Docker-orkestrering med Swarm og Compose. Kort sagt lar verktøyet deg definere alle nødvendige tjenester i én enkelt fil og starte dem samtidig.

Opprette YAML-filen

Opprett først en mappe for prosjektet ditt, og gå inn i den:

sudo mkdir wordpress
cd wordpress

Opprett en YAML-fil med navnet docker-compose.yml ved hjelp av følgende kommando:

sudo nano docker-compose.yml

Innholdet i filen varierer litt avhengig av om du bruker MySQL eller MariaDB:

MySQL

Legg til følgende innhold i filen:

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

Lagre og lukk filen.

MariaDB

Legg til følgende innhold i filen:

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

Lagre og lukk filen.

Starte containerne

Deretter bruker du Docker Compose til å starte containerne med følgende kommando:

sudo docker-compose up -d

Bruk følgende kommando for å sjekke om containerne er opprettet:

sudo docker-compose ps

For å fullføre installasjonen, gå til WordPress-containeren i en nettleser. Du kan bruke enten serverens IP-adresse eller URL-adressen:

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

Kubernetes for skalerbare WordPress-distribusjoner

For større oppsett og produksjonsmiljøer kan Kubernetes (K8s) benyttes. Kubernetes gjør det mulig å koordinere og automatisk administrere WordPress-containere på tvers av flere noder. Bruk av et Kubernetes-klynge gir flere fordeler, som automatisk skalering, selvreparerende mekanismer og sentralisert ressursadministrasjon. En måte å implementere dette på er ved hjelp av Helm, en pakkehåndterer for Kubernetes:

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

Dette muliggjør en WordPress-løsning med høy tilgjengelighet og god skalerbarhet, med lastfordeling, automatiske oppdateringer og støtte for failover.

Go to Main Menu