Jak nasadit WordPress v kontejnerech Docker
Naučte se spouštět instalaci WordPressu v kontejnerech Docker, a to jak ručně, tak pomocí Docker Compose. Pro vývojáře WordPressu bude užitečné spouštět WordPress v kontejnerech Docker. Docker usnadňuje testování více konfigurací WordPressu a spuštění nové instalace WordPressu pomocí několika jednoduchých příkazů.
Požadavky
Aby WordPress fungoval v kontejnerech Docker bez problémů, potřebujete aktuální a podporovanou distribuci Linuxu. Starší verze, jako CentOS 7 nebo Ubuntu 14.04, jsou zastaralé a měly by být nahrazeny modernějšími alternativami. Doporučené možnosti zahrnují:
- Ubuntu 22.04 LTS nebo novější
- Debian 12 nebo novější
- Aktuální verze Red Hat Enterprise Linux (RHEL) nebo AlmaLinux
Musíte mít také nainstalovaný a připravený k použití Docker. Minimální požadavek je Docker 20.10 nebo vyšší, abyste mohli využívat nejnovější vylepšení zabezpečení a výkonu. Pokud chcete používat Docker Compose, ujistěte se, že používáte alespoň verzi 2.x, protože starší verze již nejsou aktivně udržovány.
Základní znalost příkazového řádku a obeznámenost s Docker Compose a Dockerem jsou výhodou. Pokud plánujete větší nebo škálovatelné nastavení, vyplatí se prozkoumat Kubernetes pro profesionální orchestraci kontejnerů.
Jak spustit WordPress v kontejnerech Docker
Úspěšná instalace WordPressu se skládá ze tří prvků:
- Software WordPress
- Databáze MySQL nebo MariaDB
- Poslední kroky instalace provedené v prohlížeči
V níže uvedených příkladech budou WordPress a MySQL/MariaDB spuštěny v samostatných propojených kontejnerech. Kontejner se softwarem WordPress bude namapován na port hostitele, takže k němu budete mít přístup prostřednictvím prohlížeče.
Spuštění kontejneru MySQL/MariaDB
Jakmile je Docker spuštěn, prvním krokem je nastavení databáze. Začněte spuštěním kontejneru s názvem my-db. Můžete použít buď MySQL, nebo MariaDB, která je přímou náhradou za MySQL.
MySQL
Spusťte kontejner pomocí následujícího příkazu:
sudo docker run --name my-db -e MYSQL_ROOT_PASSWORD=SECURE_PASSWORD -d mysql:latestMariaDB
Spusťte kontejner pomocí následujícího příkazu:
sudo docker run --name my-db -e MYSQL_ROOT_PASSWORD=SECURE_PASSWORD -d mariadb:latestVytvoření databáze
Po vytvoření kontejneru je třeba vytvořit databázi pro instalaci WordPressu.
MySQL
Připojte se k nově vytvořenému databázovému kontejneru pomocí následujícího příkazu:
docker exec -it my-db mysql -u root -pVytvořte databázi:
CREATE Database wordpress-db;MariaDB
Připojte se k nově vytvořenému databázovému kontejneru pomocí následujícího příkazu:
docker exec -it my-db mariadb -u root -pVytvořte databázi:
CREATE Database wordpress-db;Spuštění kontejneru WordPress
Dále spusťte kontejner pomocí oficiálního obrazu WordPress. Bude namapován na hostitelský port 8080 a propojen s kontejnerem databáze.
Dvě poznámky:
- Pokud máte firewall, možná budete muset povolit přístup k portu 8080.
- Pokud na portu 8080 již běží jiná služba, můžete na hostiteli vybrat jiný port.
Příkaz se mírně liší v závislosti na tom, zda používáte MySQL nebo MariaDB:
MySQL
Spusťte kontejner WordPress pomocí následujícího příkazu:
sudo docker run --name my-wordpress -p 8080:80 --link my-db:mysql -d wordpress:latestMariaDB
Spusťte kontejner WordPress pomocí příkazu:
sudo docker run --name my-wordpress -p 8080:80 --link my-db:mariadb -d wordpress:latestK tomuto příkazu můžete přidat mnoho dalších proměnných prostředí, pokud chcete přepsat výchozí nastavení, včetně:
-e WORDPRESS_DB_HOST=[hostname]: Výchozí hodnota je IP adresa a port propojeného kontejneru MySQL/MariaDB. Tato proměnná umožňuje připojení k databázi MySQL/MariaDB na jiném serveru.-e WORDPRESS_DB_USER=[username]: Výchozí hodnota jeroot.-e WORDPRESS_DB_PASSWORD=[password]: Výchozí hodnota je proměnná prostředíMYSQL_ROOT_PASSWORDz propojeného kontejneru MySQL/MariaDB.-e WORDPRESS_DB_NAME=[name]: Výchozí hodnota je"wordpress".
Pro zvýšení bezpečnosti může být užitečné nespouštět kontejnery na výchozí síti bridge. Místo toho můžete vytvořit vlastní síť:
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:latestZde jsou vaše kontejnery více izolovány od ostatních, což snižuje riziko nežádoucích připojení. Můžete také podrobněji konfigurovat síťová pravidla, například pomocí vlastních nastavení brány firewall nebo nasazením reverzního proxy serveru.
Jak dokončit instalaci v prohlížeči
Pro poslední kroky instalace je třeba přistupovat ke kontejneru WordPress pomocí prohlížeče.
V výše uvedeném příkladu jsme namapovali port 8080 na hostiteli na port 80 (webové služby) v kontejneru. To znamená, že nyní můžete přistupovat ke kontejneru prostřednictvím prohlížeče buď přes IP adresu serveru, nebo přes doménové jméno:
http://<server-ip>:8080http://example.com:8080
Otevřete adresu URL ve svém prohlížeči, vyberte jazyk instalace a klikněte na tlačítko Pokračovat.

Na další obrazovce se zobrazí zpráva, která vás připraví na další krok nastavení. Kliknutím na tlačítko Let’s go! pokračujte.

Nyní zadejte informace o databázi, aby mohl být vytvořen soubor wp-config.php:

Vezměte na vědomí, že výchozím uživatelem je „root“, pokud není uvedeno jinak. Zadejte název databáze, kterou jste vytvořili, a heslo, které jste si zvolili. Kliknutím na „Odeslat“ budete provedeni dalšími kroky instalace.

- Název webu: Zadejte název svého webu.
- Uživatelské jméno: Jedná se o primární uživatelské jméno správce vaší webové stránky. Tip: Z bezpečnostních důvodů doporučujeme nepoužívat „Admin“ ani název vaší domény/URL.
- Heslo: Než budete pokračovat, nezapomeňte si heslo zapsat.
- Váš e-mail: Jedná se o e-mailovou adresu spojenou s účtem správce.
Poté klikněte na tlačítko Nainstalovat WordPress a dokončete instalaci.

Po dokončení instalace se zobrazí potvrzovací zpráva a poté se můžete přihlásit do WordPressu.
Jak spustit WordPress s Docker Compose
Dalším způsobem, jak spustit WordPress, je použití Docker Compose. Pokyny k instalaci a použití najdete v našem článku o orchestraci Dockeru pomocí Swarm a Compose. Tento nástroj vám v podstatě umožňuje definovat všechny požadované služby v jediném souboru a spustit je najednou.
Vytvoření souboru YAML
Nejprve vytvořte adresář pro svůj projekt a přejděte do něj:
sudo mkdir wordpress
cd wordpressVytvořte soubor YAML s názvem docker-compose.yml pomocí následujícího příkazu:
sudo nano docker-compose.ymlObsah souboru se mírně liší v závislosti na tom, zda používáte MySQL nebo MariaDB:
MySQL
Do souboru přidejte následující obsah:
wordpress:
image: wordpress:latest
links:
- wordpress_db:mysql
ports:
- 8080:80
wordpress_db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: SECURE_PASSWORDUložte a ukončete soubor.
MariaDB
Do souboru přidejte následující obsah:
wordpress:
image: wordpress:latest
links:
- wordpress_db:mariadb
ports:
- 8080:80
wordpress_db:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: SECURE_PASSWORDUložte a ukončete soubor.
Spuštění kontejnerů
Dále použijte Docker Compose ke spuštění kontejnerů pomocí následujícího příkazu:
sudo docker-compose up -dPomocí následujícího příkazu zkontrolujte, zda byly kontejnery vytvořeny:
sudo docker-compose psChcete-li dokončit instalaci, přejděte v prohlížeči do kontejneru WordPress. Můžete použít buď IP adresu serveru, nebo jeho URL:
http://192.168.0.1:8080http://example.com:8080
Kubernetes pro škálovatelné nasazení WordPressu
Pro větší a produkční nastavení lze použít Kubernetes (K8s). Kubernetes umožňuje koordinovat a automaticky spravovat kontejnery WordPress napříč více uzly. Použití clusteru Kubernetes nabízí několik výhod, jako je automatické škálování, mechanismy samoléčení a centralizovaná správa zdrojů. Jedním ze způsobů, jak to implementovat, je Helm, správce balíčků pro Kubernetes:
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install my-wordpress bitnami/wordpress --set service.type=LoadBalancerTo umožňuje vysoce dostupné a škálovatelné nasazení WordPressu s vyvažováním zatížení, automatickými aktualizacemi a podporou failoveru.