Kako namestiti WordPress v Docker kontejnerjih
Preberite, kako zagnati namestitev WordPressa v Dockerjevih kontejnerjih, tako ročno kot z uporabo Docker Compose. Razvijalcem WordPressa bo zagnanje WordPressa v Dockerjevih kontejnerjih v veliko pomoč. Docker omogoča enostavno testiranje različnih konfiguracij WordPressa in zagon nove namestitve WordPressa z le nekaj preprostimi ukazi.
Zahteve
Da bi WordPress v Dockerjevih kontejnerjih deloval brez težav, potrebujete najnovejšo in podprto distribucijo Linuxa. Starejše različice, kot sta CentOS 7 ali Ubuntu 14.04, so zastarele in jih je treba zamenjati s sodobnejšimi alternativami. Priporočene možnosti so:
- Ubuntu 22.04 LTS ali novejša različica
- Debian 12 ali novejši
- Aktualna različica Red Hat Enterprise Linux (RHEL) ali AlmaLinux
Prav tako morate imeti nameščen in pripravljen za uporabo Docker. Za izkoriščanje najnovejših izboljšav na področju varnosti in zmogljivosti je potrebna vsaj različica Docker 20.10 ali novejša. Če želite uporabljati Docker Compose, se prepričajte, da uporabljate vsaj različico 2.x, saj starejše različice niso več aktivno vzdrževane.
Koristno je imeti osnovno znanje o delu z ukazno vrstico ter poznati orodji Docker Compose in Docker. Če načrtujete večjo ali razširljivo konfiguracijo, se splača seznaniti s sistemom Kubernetes, ki omogoča profesionalno upravljanje kontejnerjev.
Kako zagnati WordPress v Dockerjevih kontejnerjih
Uspešna namestitev WordPressa obsega tri elemente:
- Programska oprema WordPress
- Podatkovna baza MySQL ali MariaDB
- Zaključni koraki namestitve se izvedejo v brskalniku
V spodnjih primerih bosta WordPress in MySQL/MariaDB delovala v ločenih, med seboj povezanih kontejnerjih. Kontejner, v katerem teče program WordPress, bo dodeljen vratom na gostitelju, tako da boste do njega lahko dostopali prek brskalnika.
Zagon kontejnerja MySQL/MariaDB
Ko se Docker zažene, je prvi korak nastavitev podatkovne zbirke. Začnite z zagonom kontejnerja z imenom my-db. Uporabite lahko MySQL ali MariaDB, ki je neposredna zamenjava za MySQL.
MySQL
Zaženite kontejner z naslednjim ukazom:
sudo docker run --name my-db -e MYSQL_ROOT_PASSWORD=SECURE_PASSWORD -d mysql:latestMariaDB
Zaženite kontejner z naslednjim ukazom:
sudo docker run --name my-db -e MYSQL_ROOT_PASSWORD=SECURE_PASSWORD -d mariadb:latestUstvarjanje zbirke podatkov
Ko ustvarite kontejner, morate ustvariti bazo podatkov za svojo namestitev WordPressa.
MySQL
Povežite se z novo ustvarjenim kontejnerjem zbirke podatkov z naslednjim ukazom:
docker exec -it my-db mysql -u root -pUstvarite bazo podatkov:
CREATE Database wordpress-db;MariaDB
Povežite se z novo ustvarjenim kontejnerjem zbirke podatkov z naslednjim ukazom:
docker exec -it my-db mariadb -u root -pUstvarite bazo podatkov:
CREATE Database wordpress-db;Zagon kontejnerja WordPress
Nato zaženite kontejner z uradno sliko WordPressa. Ta bo dodeljen gostiteljskemu vratu 8080 in povezan s kontejnerjem 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 gostitelju.
Ukaz se nekoliko razlikuje glede na to, ali uporabljate MySQL ali MariaDB:
MySQL
Zaženite WordPressov kontejner z naslednjim ukazom:
sudo docker run --name my-wordpress -p 8080:80 --link my-db:mysql -d wordpress:latestMariaDB
Zaženite WordPressov kontejner z naslednjim ukazom:
sudo docker run --name my-wordpress -p 8080:80 --link my-db:mariadb -d wordpress:latestČe želite prepisati privzete nastavitve, lahko temu ukazu dodate še številne druge spremenljivke okolja, med drugim:
-e WORDPRESS_DB_HOST=[hostname]: Privzeta vrednost je IP-naslov in vrata povezanega kontejnerja MySQL/MariaDB. Ta spremenljivka omogoča povezavo z bazo podatkov MySQL/MariaDB na drugem strežniku.-e WORDPRESS_DB_USER=[username]: Privzeta vrednost jeroot.-e WORDPRESS_DB_PASSWORD=[password]: Privzeta vrednost je spremenljivka okoljaMYSQL_ROOT_PASSWORDiz povezanega kontejnerja MySQL/MariaDB.-e WORDPRESS_DB_NAME=[name]: Privzeta vrednost je"wordpress".
Za večjo varnost je priporočljivo, da kontejnerjev 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:latestTukaj so vaši kontejnerji bolj ločeni od drugih, kar zmanjšuje tveganje za neželene povezave. Pravila omrežja lahko nastavite tudi podrobneje, na primer z uporabo prilagojenih nastavitev požarnega zidu ali z vzpostavitvijo povratnega proxyja.
Kako dokončati namestitev v brskalniku
Za zadnje korake namestitve morate do kontejnerja WordPress dostopati prek brskalnika.
V zgornjem primeru smo vrata 8080 na gostitelju presmerili na vrata 80 (spletne storitve) v kontejnerju. To pomeni, da lahko zdaj do kontejnerja dostopate prek brskalnika bodisi z IP-naslovom strežnika bodisi z imenom domene:
http://<server-ip>:8080http://example.com:8080
V brskalniku odprite spletni naslov, izberite jezik namestitve in kliknite »Naprej«.

Na naslednjem zaslonu se bo prikazalo sporočilo, ki vas bo pripravilo na naslednji korak namestitve. Kliknite gumb »Pojdimo!«, da nadaljujete.

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

Upoštevajte, 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 namestitve.

- Naslov spletnega mesta: Vnesite naslov svoje spletne strani.
- Uporabniško ime: To je glavno uporabniško ime administratorja za vašo spletno stran. Nasvet: Zaradi varnostnih razlogov priporočamo, da ne uporabljate imena »Admin« ali imena vaše domene/URL-ja.
- Geslo: Preden nadaljujete, si ga obvezno zapišite.
- Vaš e-poštni naslov: To je e-poštni naslov, povezan z upraviteljskim računom.
Nato kliknite gumb »Namesti WordPress«, da zaključite namestitev.

Ko bo namestitev končana, se bo prikazalo potrditveno 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 WordPressa. Navodila za namestitev in uporabo najdete v našem članku o upravljanju Dockerja s Swarmom in Composeom. V bistvu vam to orodje omogoča, da vse potrebne storitve opredelite v eni sami datoteki in jih hkrati zaženete.
Ustvarjanje datoteke YAML
Najprej ustvarite mapo za svoj projekt in se premaknite vanjo:
sudo mkdir wordpress
cd wordpressUstvarite datoteko YAML z imenom docker-compose.yml z naslednjim ukazom:
sudo nano docker-compose.ymlVsebina datoteke se nekoliko razlikuje glede na to, ali uporabljate 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_PASSWORDShranite 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_PASSWORDShranite datoteko in jo zaprite.
Zagon kontejnerjev
Nato z Docker Compose zaženite kontejnerje z naslednjim ukazom:
sudo docker-compose up -dUporabite naslednji ukaz, da preverite, ali so bili kontejnerji ustvarjeni:
sudo docker-compose psZa dokončanje namestitve odprite WordPressov kontejner v brskalniku. Uporabite lahko naslov IP strežnika ali njegov URL:
http://192.168.0.1:8080http://example.com:8080
Kubernetes za prilagodljive namestitve WordPressa
Za večje in produkcijske namestitve je mogoče uporabiti Kubernetes (K8s). Kubernetes omogoča usklajevanje in samodejno upravljanje WordPressovih kontejnerjev na več vozliščih. Uporaba Kubernetesovega klastra ponuja številne prednosti, kot so samodejno prilagajanje zmogljivosti, mehanizmi samodejnega popravljanja napak in centralizirano upravljanje virov. Eden od načinov za to je uporaba Helma, upravitelja paketov za Kubernetes:
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install my-wordpress bitnami/wordpress --set service.type=LoadBalancerTo omogoča visoko razpoložljivo in prilagodljivo namestitev WordPressa z izenačevanjem obremenitve, samodejnimi posodobitvami in podporo za preklop ob izpadu.