Preberite, kako zagnati na­me­sti­tev Word­Pres­sa v Doc­ker­je­vih kon­tej­ner­jih, tako ročno kot z uporabo Docker Compose. Raz­vi­jal­cem Word­Pres­sa bo zagnanje Word­Pres­sa v Doc­ker­je­vih kon­tej­ner­jih v veliko pomoč. Docker omogoča enostavno te­sti­ra­nje različnih kon­fi­gu­ra­cij Word­Pres­sa in zagon nove na­me­sti­tve Word­Pres­sa z le nekaj pre­pro­sti­mi ukazi.

Zahteve

Da bi WordPress v Doc­ker­je­vih kon­tej­ner­jih deloval brez težav, po­tre­bu­je­te naj­no­vej­šo in podprto di­s­tri­bu­ci­jo Linuxa. Starejše različice, kot sta CentOS 7 ali Ubuntu 14.04, so zastarele in jih je treba zamenjati s so­dob­nej­ši­mi al­ter­na­ti­va­mi. Pri­po­ro­če­ne možnosti so:

  • Ubuntu 22.04 LTS ali novejša različica
  • Debian 12 ali novejši
  • Aktualna različica Red Hat En­ter­pri­se Linux (RHEL) ali AlmaLinux

Prav tako morate imeti nameščen in pri­pra­vljen za uporabo Docker. Za iz­ko­ri­šča­nje naj­no­vej­ših izboljšav na področju varnosti in zmo­glji­vo­sti je potrebna vsaj različica Docker 20.10 ali novejša. Če želite upo­ra­blja­ti Docker Compose, se pre­pri­čaj­te, da upo­ra­blja­te vsaj različico 2.x, saj starejše različice niso več aktivno vzdr­že­va­ne.

Koristno je imeti osnovno znanje o delu z ukazno vrstico ter poznati orodji Docker Compose in Docker. Če na­čr­tu­je­te večjo ali raz­šir­lji­vo kon­fi­gu­ra­ci­jo, se splača seznaniti s sistemom Ku­ber­ne­tes, ki omogoča pro­fe­si­o­nal­no upra­vlja­nje kon­tej­ner­jev.

Kako zagnati WordPress v Doc­ker­je­vih kon­tej­ner­jih

Uspešna na­me­sti­tev Word­Pres­sa obsega tri elemente:

  • Pro­gram­ska oprema WordPress
  • Po­dat­kov­na baza MySQL ali MariaDB
  • Zaključni koraki na­me­sti­tve se izvedejo v br­skal­ni­ku

V spodnjih primerih bosta WordPress in MySQL/MariaDB delovala v ločenih, med seboj povezanih kon­tej­ner­jih. Kontejner, v katerem teče program WordPress, bo dodeljen vratom na go­sti­te­lju, tako da boste do njega lahko dostopali prek br­skal­ni­ka.

Zagon kon­tej­ner­ja MySQL/MariaDB

Ko se Docker zažene, je prvi korak na­sta­vi­tev po­dat­kov­ne zbirke. Začnite z zagonom kon­tej­ner­ja z imenom my-db. Uporabite lahko MySQL ali MariaDB, ki je ne­po­sre­dna zamenjava za MySQL.

MySQL

Zaženite kontejner z na­sle­dnjim ukazom:

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

MariaDB

Zaženite kontejner z na­sle­dnjim ukazom:

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

Ustvar­ja­nje zbirke podatkov

Ko ustvarite kontejner, morate ustvariti bazo podatkov za svojo na­me­sti­tev Word­Pres­sa.

MySQL

Povežite se z novo ustvar­je­nim kon­tej­ner­jem zbirke podatkov z na­sle­dnjim ukazom:

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

Ustvarite bazo podatkov:

CREATE Database wordpress-db;

MariaDB

Povežite se z novo ustvar­je­nim kon­tej­ner­jem zbirke podatkov z na­sle­dnjim ukazom:

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

Ustvarite bazo podatkov:

CREATE Database wordpress-db;

Zagon kon­tej­ner­ja WordPress

Nato zaženite kontejner z uradno sliko Word­Pres­sa. Ta bo dodeljen go­sti­telj­ske­mu vratu 8080 in povezan s kon­tej­ner­jem zbirke podatkov.

Dve opombi:

  • Če imate požarni zid, boste morda morali omogočiti dostop do vrat 8080.
  • Če na vratih 8080 že teče druga storitev, lahko izberete druga vrata na go­sti­te­lju.

Ukaz se nekoliko razlikuje glede na to, ali upo­ra­blja­te MySQL ali MariaDB:

MySQL

Zaženite Word­Pres­sov kontejner z na­sle­dnjim ukazom:

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

MariaDB

Zaženite Word­Pres­sov kontejner z na­sle­dnjim ukazom:

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

Če želite prepisati privzete na­sta­vi­tve, lahko temu ukazu dodate še številne druge spre­men­ljiv­ke okolja, med drugim:

  • -e WORDPRESS_DB_HOST=[hostname]: Privzeta vrednost je IP-naslov in vrata po­ve­za­ne­ga kon­tej­ner­ja MySQL/MariaDB. Ta spre­men­ljiv­ka omogoča povezavo z bazo podatkov MySQL/MariaDB na drugem strežniku.
  • -e WORDPRESS_DB_USER=[username]: Privzeta vrednost je root.
  • -e WORDPRESS_DB_PASSWORD=[password]: Privzeta vrednost je spre­men­ljiv­ka okolja MYSQL_ROOT_PASSWORD iz po­ve­za­ne­ga kon­tej­ner­ja MySQL/MariaDB.
  • -e WORDPRESS_DB_NAME=[name]: Privzeta vrednost je "wordpress".

Za večjo varnost je pri­po­ro­člji­vo, da kon­tej­ner­jev ne izvajate v privzetem mostnem omrežju. Namesto tega lahko ustvarite lastno omrežje:

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

Tukaj so vaši kon­tej­ner­ji bolj ločeni od drugih, kar zmanjšuje tveganje za neželene povezave. Pravila omrežja lahko nastavite tudi po­drob­ne­je, na primer z uporabo pri­la­go­je­nih na­sta­vi­tev požarnega zidu ali z vzpo­sta­vi­tvi­jo po­vra­tne­ga proxyja.

Kako dokončati na­me­sti­tev v br­skal­ni­ku

Za zadnje korake na­me­sti­tve morate do kon­tej­ner­ja WordPress dostopati prek br­skal­ni­ka.

V zgornjem primeru smo vrata 8080 na go­sti­te­lju pre­sme­ri­li na vrata 80 (spletne storitve) v kon­tej­ner­ju. To pomeni, da lahko zdaj do kon­tej­ner­ja dostopate prek br­skal­ni­ka bodisi z IP-naslovom strežnika bodisi z imenom domene:

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

V br­skal­ni­ku odprite spletni naslov, izberite jezik na­me­sti­tve in kliknite »Naprej«.

Image: Screenshot showing the WordPress language selection
You can now select your in­stal­la­ti­on language in the browser.

Na na­sle­dnjem zaslonu se bo prikazalo sporočilo, ki vas bo pri­pra­vi­lo na naslednji korak na­me­sti­tve. Kliknite gumb »Pojdimo!«, da na­da­lju­je­te.

Image: Screenshot of the WordPress installation prompt
The WordPress in­stal­la­ti­on prompt informs you about the next setup step.

Sedaj vnesite podatke o bazi podatkov, da se lahko ustvari datoteka wp-config.php:

Image: Screenshot of the WordPress database connection
Enter the requested in­for­ma­ti­on for your database.

Upo­šte­vaj­te, da je privzeti uporabnik »root«, če ni drugače navedeno. Vnesite ime baze podatkov, ki ste jo ustvarili, in geslo, ki ste ga izbrali. S klikom na »Pošlji« boste prešli na naslednje korake na­me­sti­tve.

Image: Screenshot of the WordPress installation: site info
Enter the requested in­for­ma­ti­on about your WordPress site.
  • Naslov spletnega mesta: Vnesite naslov svoje spletne strani.
  • Upo­rab­ni­ško ime: To je glavno upo­rab­ni­ško ime ad­mi­ni­stra­tor­ja za vašo spletno stran. Nasvet: Zaradi var­no­stnih razlogov pri­po­ro­ča­mo, da ne upo­ra­blja­te imena »Admin« ali imena vaše domene/URL-ja.
  • Geslo: Preden na­da­lju­je­te, si ga obvezno zapišite.
  • Vaš e-poštni naslov: To je e-poštni naslov, povezan z upra­vi­telj­skim računom.

Nato kliknite gumb »Namesti WordPress«, da za­klju­či­te na­me­sti­tev.

Image: Screenshot of the successful WordPress installation
The success message shows the in­stal­la­ti­on was success­ful.

Ko bo na­me­sti­tev končana, se bo prikazalo po­tr­di­tve­no sporočilo, nato pa se boste lahko prijavili v WordPress.

Kako zagnati WordPress z Docker Compose

Uporaba Docker Compose je še en način za zagon Word­Pres­sa. Navodila za na­me­sti­tev in uporabo najdete v našem članku o upra­vlja­nju Dockerja s Swarmom in Composeom. V bistvu vam to orodje omogoča, da vse potrebne storitve opre­de­li­te v eni sami datoteki in jih hkrati zaženete.

Ustvar­ja­nje datoteke YAML

Najprej ustvarite mapo za svoj projekt in se pre­ma­kni­te vanjo:

sudo mkdir wordpress
cd wordpress

Ustvarite datoteko YAML z imenom docker-compose.yml z na­sle­dnjim ukazom:

sudo nano docker-compose.yml

Vsebina datoteke se nekoliko razlikuje glede na to, ali upo­ra­blja­te MySQL ali MariaDB:

MySQL

V datoteko vnesite naslednjo vsebino:

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

Shranite datoteko in jo zaprite.

MariaDB

V datoteko vnesite naslednjo vsebino:

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

Shranite datoteko in jo zaprite.

Zagon kon­tej­ner­jev

Nato z Docker Compose zaženite kon­tej­ner­je z na­sle­dnjim ukazom:

sudo docker-compose up -d

Uporabite naslednji ukaz, da preverite, ali so bili kon­tej­ner­ji ustvar­je­ni:

sudo docker-compose ps

Za do­kon­ča­nje na­me­sti­tve odprite Word­Pres­sov kontejner v br­skal­ni­ku. Uporabite lahko naslov IP strežnika ali njegov URL:

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

Ku­ber­ne­tes za pri­la­go­dlji­ve na­me­sti­tve Word­Pres­sa

Za večje in pro­duk­cij­ske na­me­sti­tve je mogoče uporabiti Ku­ber­ne­tes (K8s). Ku­ber­ne­tes omogoča uskla­je­va­nje in samodejno upra­vlja­nje Word­Pres­so­vih kon­tej­ner­jev na več vozliščih. Uporaba Ku­ber­ne­te­so­ve­ga klastra ponuja številne prednosti, kot so samodejno pri­la­ga­ja­nje zmo­glji­vo­sti, mehanizmi sa­mo­dej­ne­ga po­pra­vlja­nja napak in cen­tra­li­zi­ra­no upra­vlja­nje virov. Eden od načinov za to je uporaba Helma, upra­vi­te­lja paketov za Ku­ber­ne­tes:

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

To omogoča visoko raz­po­lo­žlji­vo in pri­la­go­dlji­vo na­me­sti­tev Word­Pres­sa z iz­e­na­če­va­njem obre­me­ni­tve, sa­mo­dej­ni­mi po­so­do­bi­tva­mi in podporo za preklop ob izpadu.

Go to Main Menu