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:latest

MariaDB

Spusťte kontejner pomocí následujícího příkazu:

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

Vytvoř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 -p

Vytvoř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 -p

Vytvoř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:latest

MariaDB

Spusťte kontejner WordPress pomocí příkazu:

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

K 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 je root.
  • -e WORDPRESS_DB_PASSWORD=[password]: Výchozí hodnota je proměnná prostředí MYSQL_ROOT_PASSWORD z 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:latest

Zde 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>:8080
  • http://example.com:8080

Otevřete adresu URL ve svém prohlížeči, vyberte jazyk instalace a klikněte na tlačítko Pokračovat.

Obrázek: Screenshot showing the WordPress language selection
You can now select your installation language in the browser.

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.

Obrázek: Screenshot of the WordPress installation prompt
The WordPress installation prompt informs you about the next setup step.

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

Obrázek: Screenshot of the WordPress database connection
Enter the requested information for your database.

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.

Obrázek: Screenshot of the WordPress installation: site info
Enter the requested information about your WordPress site.
  • 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.

Obrázek: Screenshot of the successful WordPress installation
The success message shows the installation was successful.

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 wordpress

Vytvořte soubor YAML s názvem docker-compose.yml pomocí následujícího příkazu:

sudo nano docker-compose.yml

Obsah 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_PASSWORD

Ulož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_PASSWORD

Ulož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 -d

Pomocí následujícího příkazu zkontrolujte, zda byly kontejnery vytvořeny:

sudo docker-compose ps

Chcete-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:8080
  • http://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=LoadBalancer

To umožňuje vysoce dostupné a škálovatelné nasazení WordPressu s vyvažováním zatížení, automatickými aktualizacemi a podporou failoveru.

Přejít do hlavního menu