Jeśli kiedykolwiek próbowałeś postawić WordPressa „tradycyjnie”, to wiesz, jak to wygląda: instalacja Apache lub Nginx, konfiguracja PHP, do tego MySQL, potem dopasowanie wersji, ustawianie uprawnień, a na końcu modlitwa, żeby wszystko działało. Docker rozwiązuje ten problem jednym ruchem – daje Ci gotowe kontenery, które po prostu działają.
I właśnie dlatego tak wiele osób przerzuca się na Dockera. Nie musisz być adminem z 20-letnim doświadczeniem. Wystarczy, że potrafisz wkleić kilka komend do terminala. Serio.
W tym artykule przeprowadzę Cię przez cały proces – od instalacji Dockera, przez konfigurację, aż po uruchomienie WordPressa i dostęp do niego z przeglądarki. A jeśli coś pójdzie nie tak, też Ci powiem, jak to naprawić.
Dlaczego warto uruchomić WordPressa w Dockerze?
Zanim przejdziemy do konkretów, warto zrozumieć, dlaczego Docker jest tak wygodny.
1. Zero bałaganu w systemie
Nie instalujesz PHP, MySQL, Apache ani niczego innego. Wszystko siedzi w kontenerach.
2. Łatwe przenoszenie projektu
Chcesz przenieść WordPressa na inny komputer? Kopiujesz folder i gotowe.
3. Szybkie odtwarzanie środowiska
Coś się wysypało? Usuwasz kontener, stawiasz nowy i po sprawie.
4. Idealne środowisko do nauki i testów
Możesz mieć kilka WordPressów naraz, każdy w innej wersji.
5. Docker Compose robi za Ciebie całą robotę
Jeden plik YAML i masz cały stack: WordPress + baza danych + sieć + wolumeny.
Krok 1: Zainstaluj Dockera
Jeśli masz Windowsa lub macOS – pobierasz Docker Desktop. Jeśli Linuxa – instalujesz pakiet docker + docker-compose-plugin.
Windows / macOS
Wejdź na stronę Dockera i pobierz Docker Desktop. Instalacja jest banalna – klikasz „Next”, „Next”, „Finish”.
Linux (np. Ubuntu)
W terminalu:
sudo apt update sudo apt install docker.io docker-compose-plugin sudo systemctl enable docker sudo systemctl start docker
Sprawdź, czy działa:
docker --version docker compose version
Jeśli widzisz wersje – jesteś gotowy.
Krok 2: Przygotuj folder projektu
Stwórz sobie folder, w którym będzie Twój WordPress:
mkdir wordpress-docker cd wordpress-docker
To będzie Twoje małe „centrum dowodzenia”.
Krok 3: Stwórz plik docker-compose.yml
To jest serce całej operacji. Jeden plik, który mówi Dockerowi:
- uruchom WordPressa,
- uruchom bazę danych,
- połącz je ze sobą,
- zapisz dane w wolumenach, żeby nie zniknęły po restarcie.
Stwórz plik:
nano docker-compose.yml
A teraz wklej do niego:
version: '3.9'
services:
wordpress:
image: wordpress:latest
container_name: wordpress
ports:
- "8000:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wpuser
WORDPRESS_DB_PASSWORD: wppass
WORDPRESS_DB_NAME: wpdb
volumes:
- ./wp-content:/var/www/html/wp-content
depends_on:
- db
db:
image: mysql:5.7
container_name: wordpress_db
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: wpdb
MYSQL_USER: wpuser
MYSQL_PASSWORD: wppass
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
Co tu się dzieje?
- WordPress działa na porcie 8000 (czyli wejdziesz na http://localhost:8000).
- MySQL działa w osobnym kontenerze.
- Dane WordPressa (wp-content) są w Twoim folderze.
- Dane MySQL są w wolumenie Dockera.
To naprawdę wszystko, czego potrzebujesz.
Krok 4: Uruchom WordPressa
W terminalu wpisz:
docker compose up -d
Po chwili zobaczysz, że Docker pobiera obrazy, tworzy kontenery i uruchamia je.
Sprawdź status:
docker ps
Powinieneś zobaczyć dwa kontenery:
- wordpress
- wordpress_db
Jeśli są – gratulacje, WordPress działa.
Krok 5: Wejdź w WordPressa
Otwórz przeglądarkę i wpisz:
http://localhost:8000
Powinien pojawić się kreator instalacji WordPressa.
Wybierasz język, ustawiasz nazwę strony, login, hasło – i gotowe.
Co jeśli coś nie działa?
Spokojnie, Docker jest prosty, ale czasem coś potrafi się wysypać. Oto najczęstsze problemy.
Problem 1: „Error establishing a database connection”
Najczęściej:
- źle wpisane dane w
docker-compose.yml, - baza jeszcze się nie uruchomiła.
Sprawdź logi bazy:
docker logs wordpress_db
Jeśli widzisz błędy z hasłem – popraw dane w pliku YAML i uruchom ponownie:
docker compose down docker compose up -d
Problem 2: Port 8000 jest zajęty
Zmień port w pliku:
ports: - "8080:80"
I restart:
docker compose down docker compose up -d
Problem 3: WordPress nie widzi wp-content
Upewnij się, że folder istnieje:
mkdir wp-content
I restart kontenerów.
Jak zatrzymać WordPressa?
Proste:
docker compose down
Jeśli chcesz usunąć też dane bazy:
docker compose down -v
Jak zrestartować WordPressa?
docker compose restart
Jak wejść do kontenera WordPressa?
Czasem chcesz coś podejrzeć:
docker exec -it wordpress bash
Jak zrobić backup WordPressa w Dockerze?
To banalnie proste.
Backup wp-content:
tar -czvf wp-content-backup.tar.gz wp-content
Backup bazy:
docker exec wordpress_db mysqldump -u wpuser -pwppass wpdb > backup.sql
Jak dodać phpMyAdmin?
Jeśli chcesz mieć graficzny dostęp do bazy, dodaj do docker-compose.yml:
phpmyadmin:
image: phpmyadmin/phpmyadmin
ports:
- "8081:80"
environment:
PMA_HOST: db
depends_on:
- db
I restart:
docker compose up -d
Wejdź na:
http://localhost:8081
Jak zmienić wersję WordPressa lub PHP?
Wystarczy zmienić obraz:
image: wordpress:php8.2
Albo:
image: wordpress:6.4
I restart.
Jak uruchomić wiele WordPressów naraz?
Każdy w osobnym folderze, każdy na innym porcie.
Przykład:
- projekt1 → port 8000
- projekt2 → port 8001
Jak przenieść WordPressa na inny komputer?
- Kopiujesz folder projektu.
- Na nowym komputerze uruchamiasz:
docker compose up -d
I gotowe.
Jak zautomatyzować WordPressa w Dockerze?
Możesz stworzyć skrypt bash, który uruchomi cały proces:
#!/bin/bash docker compose down docker compose pull docker compose up -d
Zapisz jako:
deploy.sh
Nadaj uprawnienia:
chmod +x deploy.sh
I uruchamiaj jednym poleceniem.
Uruchomienie WordPressa w Dockerze to jedna z najprostszych i najczystszych metod pracy z tym CMS-em. Nie musisz instalować PHP, MySQL ani Apache. Nie musisz martwić się o wersje, konflikty, konfiguracje. Wszystko masz w jednym pliku docker-compose.yml.