Ako nasadiť WordPress v kontajneroch Docker
Naučte sa, ako spustiť inštaláciu WordPress v kontajneroch Docker, a to ručne aj pomocou Docker Compose. Vývojári WordPressu ocenia možnosť spustiť WordPress v kontajneroch Docker. Docker uľahčuje testovanie viacerých konfigurácií WordPressu a spustenie novej inštalácie WordPressu pomocou niekoľkých jednoduchých príkazov.
Požiadavky
Aby WordPress fungoval v kontajneroch Docker bez problémov, potrebujete aktuálnu a podporovanú distribúciu Linuxu. Staršie verzie, ako CentOS 7 alebo Ubuntu 14.04, sú zastarané a mali by byť nahradené modernými alternatívami. Odporúčané možnosti zahŕňajú:
- Ubuntu 22.04 LTS alebo novší
- Debian 12 alebo novší
- Aktuálna verzia Red Hat Enterprise Linux (RHEL) alebo AlmaLinux
Musíte mať tiež nainštalovaný a pripravený na použitie Docker. Minimálnou požiadavkou je Docker 20.10 alebo vyšší, aby ste mohli využívať najnovšie vylepšenia v oblasti bezpečnosti a výkonu. Ak chcete používať Docker Compose, uistite sa, že používate aspoň verziu 2.x, pretože staršie verzie už nie sú aktívne udržiavané.
Základné znalosti príkazového riadku a oboznámenosť s Docker Compose a Docker sú užitočné. Ak plánujete väčšiu alebo škálovateľnú konfiguráciu, stojí za to preskúmať Kubernetes pre profesionálnu koordináciu kontajnerov.
Ako spustiť WordPress v kontajneroch Docker
Úspešná inštalácia WordPressu sa skladá z troch prvkov:
- Softvér WordPress
- Databáza MySQL alebo MariaDB
- Posledné kroky inštalácie dokončené v prehliadači
V nižšie uvedených príkladoch budú WordPress a MySQL/MariaDB bežať v samostatných prepojených kontajneroch. Kontajner, v ktorom beží softvér WordPress, bude priradený k portu na hostiteľskom počítači, aby ste k nemu mali prístup prostredníctvom prehliadača.
Spustenie kontajnera MySQL/MariaDB
Po spustení Dockeru je prvým krokom nastavenie databázy. Začnite spustením kontajnera s názvom my-db. Môžete použiť buď MySQL alebo MariaDB, ktorý je priamou náhradou za MySQL.
MySQL
Spustite kontajner pomocou nasledujúceho príkazu:
sudo docker run --name my-db -e MYSQL_ROOT_PASSWORD=SECURE_PASSWORD -d mysql:latestMariaDB
Spustite kontajner pomocou nasledujúceho príkazu:
sudo docker run --name my-db -e MYSQL_ROOT_PASSWORD=SECURE_PASSWORD -d mariadb:latestVytvorenie databázy
Po vytvorení kontajnera je potrebné vytvoriť databázu pre inštaláciu WordPress.
MySQL
Pripojte sa k novo vytvorenému kontajneru databázy pomocou nasledujúceho príkazu:
docker exec -it my-db mysql -u root -pVytvorte databázu:
CREATE Database wordpress-db;MariaDB
Pripojte sa k novo vytvorenému kontajneru databázy pomocou nasledujúceho príkazu:
docker exec -it my-db mariadb -u root -pVytvorte databázu:
CREATE Database wordpress-db;Spustenie kontajnera WordPress
Ďalej spustite kontajner pomocou oficiálneho obrazu WordPress. Bude priradený k hostiteľskému portu 8080 a prepojený s kontajnerom databázy.
Dve poznámky:
- Ak máte firewall, možno budete musieť povoliť prístup k portu 8080.
- Ak na porte 8080 už beží iná služba, môžete na hostiteľskom počítači zvoliť iný port.
Príkaz sa mierne líši v závislosti od toho, či používate MySQL alebo MariaDB:
MySQL
Spustite kontajner WordPress pomocou nasledujúceho príkazu:
sudo docker run --name my-wordpress -p 8080:80 --link my-db:mysql -d wordpress:latestMariaDB
Spustite kontajner WordPress pomocou príkazu:
sudo docker run --name my-wordpress -p 8080:80 --link my-db:mariadb -d wordpress:latestExistuje mnoho ďalších premenných prostredia, ktoré môžete pridať k tomuto príkazu, ak chcete prepisovať predvolené nastavenia, vrátane:
-e WORDPRESS_DB_HOST=[hostname]: Predvolená hodnota je IP adresa a port prepojeného kontajnera MySQL/MariaDB. Táto premenná vám umožňuje pripojiť sa k databáze MySQL/MariaDB na inom serveri.-e WORDPRESS_DB_USER=[username]: Predvolená hodnota jeroot.-e WORDPRESS_DB_PASSWORD=[password]: Predvolená hodnota je premenná prostrediaMYSQL_ROOT_PASSWORDz prepojeného kontajnera MySQL/MariaDB.-e WORDPRESS_DB_NAME=[name]: Predvolená hodnota je"wordpress".
Pre zvýšenie bezpečnosti môže byť užitočné nespúšťať kontajnery na predvolenej mostovej sieti. Namiesto toho môžete vytvoriť vlastnú sieť:
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:latestTu sú vaše kontajnery viac izolované od ostatných, čím sa znižuje riziko nežiaducich pripojení. Môžete tiež podrobnejšie konfigurovať sieťové pravidlá, napríklad pomocou vlastných nastavení brány firewall alebo nasadením reverzného proxy servera.
Ako dokončiť inštaláciu v prehliadači
Pre posledné kroky inštalácie je potrebné otvoriť kontajner WordPress pomocou prehliadača.
V uvedenom príklade sme priradili port 8080 na hostiteľskom počítači k portu 80 (webové služby) v kontajneri. To znamená, že teraz môžete pristupovať ku kontajneru prostredníctvom prehliadača buď cez IP adresu servera, alebo cez doménové meno:
http://<server-ip>:8080http://example.com:8080
Navštívte adresu URL vo vašom prehliadači, vyberte jazyk inštalácie a kliknite na tlačidlo Pokračovať.

Na ďalšej obrazovke sa zobrazí správa, ktorá vás pripraví na ďalší krok nastavenia. Kliknutím na tlačidlo Poďme na to! pokračujte.

Teraz zadajte informácie o databáze, aby bolo možné vytvoriť súbor wp-config.php:

Upozorňujeme, že predvolený používateľ je „root“, pokiaľ nie je uvedené inak. Zadajte názov databázy, ktorú ste vytvorili, a heslo, ktoré ste si zvolili. Kliknutím na „Odoslať“ budete prevedení ďalšími krokmi inštalácie.

- Názov stránky: Zadajte názov svojej webovej stránky.
- Používateľské meno: Toto je primárne používateľské meno správcu vašej webovej stránky. Tip: Z bezpečnostných dôvodov odporúčame nepoužívať „Admin“ ani názov vašej domény/URL.
- Heslo: Nezabudnite si ho zapísať, než budete pokračovať.
- Váš e-mail: Toto je e-mailová adresa spojená s administrátorským účtom.
Potom kliknite na tlačidlo Inštalovať WordPress, aby ste dokončili inštaláciu.

Po dokončení inštalácie sa zobrazí potvrdzujúca správa a potom sa môžete prihlásiť do WordPressu.
Ako spustiť WordPress s Docker Compose
Ďalším spôsobom, ako spustiť WordPress, je použitie nástroja Docker Compose. Pokyny na inštaláciu a používanie nájdete v našom článku o orchestrácii Docker s nástrojmi Swarm a Compose. V podstate vám tento nástroj umožňuje definovať všetky potrebné služby v jednom súbore a spustiť ich naraz.
Vytvorenie súboru YAML
Najskôr vytvorte adresár pre svoj projekt a prejdite do neho:
sudo mkdir wordpress
cd wordpressVytvorte súbor YAML s názvom docker-compose.yml pomocou nasledujúceho príkazu:
sudo nano docker-compose.ymlObsah súboru sa mierne líši v závislosti od toho, či používate MySQL alebo MariaDB:
MySQL
Do súboru pridajte nasledujúci obsah:
wordpress:
image: wordpress:latest
links:
- wordpress_db:mysql
ports:
- 8080:80
wordpress_db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: SECURE_PASSWORDUložte a zatvorte súbor.
MariaDB
Do súboru pridajte nasledujúci obsah:
wordpress:
image: wordpress:latest
links:
- wordpress_db:mariadb
ports:
- 8080:80
wordpress_db:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: SECURE_PASSWORDUložte a zatvorte súbor.
Spustenie kontajnerov
Ďalej použite Docker Compose na spustenie kontajnerov pomocou nasledujúceho príkazu:
sudo docker-compose up -dPomocou nasledujúceho príkazu skontrolujte, či boli kontajnery vytvorené:
sudo docker-compose psNa dokončenie inštalácie navštívte kontajner WordPress v prehliadači. Môžete použiť buď IP adresu servera, alebo jeho URL:
http://192.168.0.1:8080http://example.com:8080
Kubernetes pre škálovateľné nasadenia WordPressu
Pre väčšie a produkčné nastavenia je možné použiť Kubernetes (K8s). Kubernetes vám umožňuje koordinovať a automaticky spravovať kontajnery WordPress na viacerých uzloch. Použitie klastra Kubernetes ponúka niekoľko výhod, ako je automatické škálovanie, mechanizmy samočinného opravovania a centralizovaná správa zdrojov. Jedným zo spôsobov, ako to implementovať, je Helm, správca balíkov pre Kubernetes:
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install my-wordpress bitnami/wordpress --set service.type=LoadBalancerTo umožňuje vysoko dostupnú, škálovateľnú implementáciu WordPress s vyvažovaním zaťaženia, automatickými aktualizáciami a podporou prechodu na záložný systém.