Opi käyt­tä­mään WordPress-asennusta Docker-kont­teis­sa sekä ma­nu­aa­li­ses­ti että Docker Compose -työkalun avulla. WordPress-ke­hit­tä­jil­le on hyö­dyl­lis­tä käyttää WordPres­siä Docker-kont­teis­sa. Dockerin avulla on helppo testata erilaisia WordPress-ko­koon­pa­no­ja ja käyn­nis­tää uusi WordPress-asennus vain muu­ta­mal­la yk­sin­ker­tai­sel­la ko­men­nol­la.

Vaa­ti­muk­set

Jotta WordPress toimisi sujuvasti Docker-kont­teis­sa, tarvitset ajan­ta­sai­sen ja tuetun Linux-jakelun. Vanhemmat versiot, kuten CentOS 7 tai Ubuntu 14.04, ovat van­hen­tu­nei­ta, ja ne tulisi korvata ny­ky­ai­kai­sil­la vaih­toeh­doil­la. Suo­si­tel­ta­via vaih­toeh­to­ja ovat:

  • Ubuntu 22.04 LTS tai uudempi
  • Debian 12 tai uudempi
  • Red Hat En­terpri­se Linuxin (RHEL) tai Al­ma­Li­nuxin uusin versio

Docker on myös asen­net­ta­va ja oltava käyt­tö­val­mis. Jotta voit hyötyä uusim­mis­ta tie­to­tur­va- ja suo­ri­tus­ky­ky­pa­ran­nuk­sis­ta , tarvitset vähintään Docker -version 20.10. Jos haluat käyttää Docker Composea, varmista, että käytät vähintään versiota 2.x, sillä vanhempia versioita ei enää yl­lä­pi­de­tä ak­tii­vi­ses­ti.

Pe­rus­tie­dot ko­men­to­ri­vi­käy­tös­tä sekä Docker Compose- ja Docker -oh­jel­mis­to­jen hallinta ovat hyö­dyl­li­siä. Jos suun­nit­te­let laajempaa tai skaa­lau­tu­vaa ratkaisua, kannattaa tutustua Ku­ber­ne­te­siin am­mat­ti­ta­son konttien hal­lin­taan.

Kuinka käyttää WordPres­siä Docker-kont­teis­sa

On­nis­tu­nut WordPress-asennus koostuu kolmesta osasta:

  • WordPress-oh­jel­mis­to
  • MySQL- tai MariaDB-tie­to­kan­ta
  • Lo­pul­li­set asen­nus­vai­heet suo­ri­te­taan se­lai­mes­sa

Seu­raa­vis­sa esi­mer­keis­sä WordPress ja MySQL/MariaDB toimivat eril­li­sis­sä, toisiinsa lii­te­tyis­sä kont­teis­sa. WordPress-oh­jel­mis­toa ajava kontti liitetään isän­tä­ko­neen porttiin, jotta voit käyttää sitä se­lai­mel­la.

MySQL/MariaDB-kontin käyttö

Kun Docker on käynnissä, en­sim­mäi­nen vaihe on tie­to­kan­nan mää­rit­tä­mi­nen. Aloita käyn­nis­tä­mäl­lä kontti nimeltä my-db. Voit käyttää joko MySQL:ää tai MariaDB:tä, joka on suora korvike MySQL:lle.

MySQL

Käynnistä kontti seu­raa­val­la ko­men­nol­la:

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

MariaDB

Käynnistä kontti seu­raa­val­la ko­men­nol­la:

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

Tie­to­kan­nan luominen

Kun olet luonut kontin, sinun on luotava tie­to­kan­ta WordPress-asen­nuk­sel­le­si.

MySQL

Yhdistä juuri luotuun tie­to­kan­ta­kont­tiin seu­raa­val­la ko­men­nol­la:

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

Luo tie­to­kan­ta:

CREATE Database wordpress-db;

MariaDB

Yhdistä juuri luotuun tie­to­kan­ta­kont­tiin seu­raa­val­la ko­men­nol­la:

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

Luo tie­to­kan­ta:

CREATE Database wordpress-db;

WordPress-kontin käyt­tä­mi­nen

Seu­raa­vak­si käynnistä kontti käyt­tä­mäl­lä vi­ral­lis­ta WordPress-kuvaa. Se liitetään isän­tä­ko­neen porttiin 8080 ja yh­dis­te­tään tie­to­kan­ta­kont­tiin.

Kaksi huo­mau­tus­ta:

  • Jos käy­tös­sä­si on palomuuri, sinun on ehkä sal­lit­ta­va pääsy porttiin 8080.
  • Jos portissa 8080 on jo käynnissä toinen palvelu, voit valita isän­tä­ko­neel­ta toisen portin.

Komento vaihtelee hieman sen mukaan, käytätkö MySQL:ää vai MariaDB:tä:

MySQL

Käynnistä WordPress-kontti seu­raa­val­la ko­men­nol­la:

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

MariaDB

Käynnistä WordPress-kontti seu­raa­val­la ko­men­nol­la:

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

Tähän komentoon voi lisätä monia muita ym­pä­ris­tö­muut­tu­jia, jos haluat ohittaa ole­tus­a­se­tuk­set, kuten:

  • -e WORDPRESS_DB_HOST=[hostname]: Ole­tusar­vo on lin­ki­te­tyn MySQL/MariaDB-kontin IP-osoite ja portti. Tämän muuttujan avulla voit muodostaa yhteyden toisella pal­ve­li­mel­la olevaan MySQL/MariaDB-tie­to­kan­taan.
  • -e WORDPRESS_DB_USER=[username]: Ole­tusar­vo on root.
  • -e WORDPRESS_DB_PASSWORD=[password]: Ole­tusar­vo on lin­ki­te­tyn MySQL/MariaDB-kontin MYSQL_ROOT_PASSWORD -ym­pä­ris­tö­muut­tu­ja.
  • -e WORDPRESS_DB_NAME=[name]: Ole­tusar­vo on "wordpress".

Tur­val­li­suu­den pa­ran­ta­mi­sek­si voi olla suo­si­tel­ta­vaa olla käyt­tä­mät­tä kontteja ole­tusar­voi­ses­sa bridge-verkossa. Sen sijaan voit luoda mu­kau­te­tun verkon:

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

Tässä ym­pä­ris­tös­sä konttisi ovat paremmin eris­tet­ty­jä muista, mikä vähentää ei-toi­vot­tu­jen yh­teyk­sien riskiä. Voit myös määrittää verk­ko­sään­nöt tarkemmin, esi­mer­kik­si käyt­tä­mäl­lä mu­kau­tet­tu­ja pa­lo­muu­ria­se­tuk­sia tai ottamalla käyttöön kään­tei­sen vä­li­tys­pal­ve­li­men.

Kuinka asennus saatetaan loppuun se­lai­mes­sa

Asen­nuk­sen vii­mei­sis­sä vaiheissa sinun on avattava WordPress-kontti se­lai­mel­la.

Yllä olevassa esi­mer­kis­sä olemme mää­rit­tä­neet isän­tä­ko­neen portin 8080 vas­taa­maan kontin porttia 80 (verk­ko­pal­ve­lut). Tämä tar­koit­taa, että voit nyt käyttää konttia se­lai­mel­la joko pal­ve­li­men IP-osoitteen tai verk­ko­tun­nuk­sen kautta:

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

Avaa URL-osoite se­lai­mes­sa­si, valitse asen­nus­kie­li ja napsauta Jatka.

Kuva: Screenshot showing the WordPress language selection
You can now select your ins­tal­la­tion language in the browser.

Seu­raa­val­la näytöllä näkyy viesti, joka valmistaa sinut asen­nuk­sen seu­raa­vaan vai­hee­seen. Jatka nap­saut­ta­mal­la Let’s go! -pai­ni­ket­ta.

Kuva: Screenshot of the WordPress installation prompt
The WordPress ins­tal­la­tion prompt informs you about the next setup step.

Syötä nyt tie­to­kan­ta­tie­dot, jotta tiedosto wp-config.php voidaan luoda:

Kuva: Screenshot of the WordPress database connection
Enter the requested in­for­ma­tion for your database.

Huomaa, että ole­tus­käyt­tä­jä on ”root”, ellei toisin mainita. Kirjoita luomasi tie­to­kan­nan nimi ja va­lit­se­ma­si salasana. Kun napsautat ”Lähetä”, ohjelma opastaa sinut asen­nuk­sen seu­raa­viin vai­hei­siin.

Kuva: Screenshot of the WordPress installation: site info
Enter the requested in­for­ma­tion about your WordPress site.
  • Sivuston otsikko: Kirjoita verk­ko­si­vus­to­si otsikko.
  • Käyt­tä­jä­tun­nus: Tämä on verk­ko­si­vus­to­si pää­käyt­tä­jän käyt­tä­jä­tun­nus. Vinkki: Tur­val­li­suus­syis­tä suo­sit­te­lem­me, ettet käytä tunnusta ”Admin” tai verk­ko­tun­nus­ta­si/URL-osoi­tet­ta­si.
  • Salasana: Muista kir­joit­taa tämä muistiin ennen kuin jatkat.
  • Säh­kö­pos­tio­soit­tee­si: Tämä on jär­jes­tel­män­val­vo­jan tiliin liitetty säh­kö­pos­tio­soi­te.

Napsauta sitten Asenna WordPress -pai­ni­ket­ta asen­nuk­sen loppuun saat­ta­mi­sek­si.

Kuva: Screenshot of the successful WordPress installation
The success message shows the ins­tal­la­tion was success­ful.

Kun asennus on valmis, näet vah­vis­tus­vies­tin ja voit kirjautua WordPres­siin.

Kuinka käyttää WordPres­siä Docker Composen avulla

Docker Compose on toinen tapa käyttää WordPres­siä. Asennus- ja käyt­tö­oh­jeet löydät ar­tik­ke­lis­tam­me, joka kä­sit­te­lee Docker-or­ke­stroin­tia Swarm- ja Compose-työ­ka­lu­jen avulla. Käy­tän­nös­sä tämän työkalun avulla voit mää­ri­tel­lä kaikki tar­vit­ta­vat palvelut yhteen tie­dos­toon ja käyn­nis­tää ne yhtä aikaa.

YAML-tiedoston luominen

Luo ensin kansio pro­jek­til­le­si ja siirry siihen:

sudo mkdir wordpress
cd wordpress

Luo YAML-tiedosto nimeltä docker-compose.yml seu­raa­val­la ko­men­nol­la:

sudo nano docker-compose.yml

Tiedoston sisältö vaihtelee hieman sen mukaan, käytätkö MySQL:ää vai MariaDB:tä:

MySQL

Lisää tie­dos­toon seuraava sisältö:

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

Tallenna tiedosto ja sulje se.

MariaDB

Lisää tie­dos­toon seuraava sisältö:

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

Tallenna tiedosto ja sulje se.

Konttien käyn­nis­tä­mi­nen

Käynnistä seu­raa­vak­si kontit Docker Compose -oh­jel­mal­la seu­raa­val­la ko­men­nol­la:

sudo docker-compose up -d

Tarkista seu­raa­val­la ko­men­nol­la, onko kontit luotu:

sudo docker-compose ps

Vii­meis­te­le asennus avaamalla WordPress-kontti se­lai­mes­sa. Voit käyttää joko pal­ve­li­men IP-osoitetta tai sen URL-osoitetta:

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

Ku­ber­ne­tes skaa­lau­tu­viin WordPress-asen­nuk­siin

Suu­rem­mis­sa ja tuo­tan­to­käyt­töön tar­koi­te­tuis­sa ym­pä­ris­töis­sä voidaan käyttää Ku­ber­ne­te­sia (K8s). Ku­ber­ne­te­sin avulla voit koor­di­noi­da ja hallita WordPress-kontteja au­to­maat­ti­ses­ti useiden solmujen välillä. Ku­ber­ne­tes-klusterin käyttö tarjoaa useita etuja, kuten au­to­maat­ti­sen skaa­lauk­sen, itsensä korjaavat me­ka­nis­mit ja kes­ki­te­tyn re­surs­sien­hal­lin­nan. Yksi tapa toteuttaa tämä on Helm, Ku­ber­ne­te­sin pa­ket­tien­hal­lin­taoh­jel­ma:

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

Tämä mah­dol­lis­taa erittäin luo­tet­ta­van ja skaa­lau­tu­van WordPress-asen­nuk­sen, joka sisältää kuor­mi­tuk­sen ta­sa­pai­not­ta­mi­sen, au­to­maat­ti­set päi­vi­tyk­set ja vi­ka­sie­toi­suu­den.

Siirry pää­va­lik­koon