Docker Wordpress · 7 min read · Oct 14, 2025
Dockerizzare Wordpress con Nginx e PHP-FPM su Ubuntu 16.04
Docker-Compose è uno strumento da riga di comando per definire e gestire contenitori docker multi-contenitore come se fossero un unico servizio. Compose è scritto in python e può essere installato con il comando Python pip. Con compose, possiamo eseguire più contenitori docker con un solo comando. Ti consente di creare un contenitore come servizio, ottimo per il tuo ambiente di sviluppo, test e staging.
In questo tutorial, ti guiderò passo dopo passo nell’uso di docker-compose. Distribuiremo ‘Wordpress‘ con Nginx, MySQL e PHP-FPM. Ogni servizio ha il proprio contenitore e utilizzeremo immagini dal registro docker hub. Ti mostrerò come creare contenitori da immagini docker e gestire tutti i contenitori con docker-compose.
Prerequisito
- Ubuntu 16.04
- Privilegi di root
Passo 1 - Installare Docker
Inizieremo da zero, installando docker e docker compose manualmente con il comando apt.
Prima di iniziare, aggiorna il repository di Ubuntu e installa gli aggiornamenti più recenti:
sudo apt-get update
sudo apt-get upgradePer impostazione predefinita, docker è disponibile nel repository di Ubuntu, quindi possiamo continuare a installarlo subito:
sudo apt-get install -y docker.ioQuando l’installazione è completata, avvia docker e aggiungilo per avviarsi automaticamente all’avvio:
systemctl start docker
systemctl enable dockerOra testa la tua installazione di docker con il comando qui sotto:
docker run hello-worldVedrai hello-world da docker.
Passo 2 - Installare Docker-Compose
Docker-compose è uno script scritto in python, è disponibile nel repository PyPI python e può essere installato con python pip. Quindi dobbiamo prima installare python e python pip sul nostro sistema.
Installa python e python-pip:
sudo apt-get install -y python python-pipSuccessivamente, installa docker-compose con il comando pip:
pip install docker-composeAspetta che il processo di installazione finisca. Poi controlla l’installazione con il comando docker-compose:
docker-compose -vOtterrai la versione di docker-compose.
Passo 3 - Configurare Wordpress
Ora, docker e docker-compose sono installati sul sistema. In questo passo, ti mostrerò come creare e configurare l’ambiente docker-compose per il nostro progetto WordPress.
Distribuiremo l’applicazione PHP ‘Wordpress’ con Nginx come server web e MariaDB per il database MySQL come contenitori docker gestiti da docker-compose. Ogni applicazione (Wordpress, Nginx e MySQL) verrà eseguita nel proprio contenitore, puoi vedere l’elenco qui sotto:
Nginx: Utilizziamo l’immagine docker ufficiale, versione più recente ‘nginx: latest’.
Wordpress: Wordpress fornisce alcune immagini docker su docker-hub, e utilizzeremo WordPress 4.7 con PHP-FPM 7.0 su di esso.
MySQL: Utilizzeremo il contenitore ufficiale di MariaDB, versione più recente.
Quindi abbiamo bisogno di 3 immagini docker dal registro docker hub.
Non eseguiremo docker come root, utilizzeremo un normale utente Linux. Quindi crea semplicemente un nuovo utente con il comando qui sotto (sentiti libero di usare un nome utente diverso qui, assicurati solo che l’utente non esista ancora. Se scegli un nome diverso, assicurati di cambiarlo in tutti i comandi che seguono in questo tutorial):
useradd -m -s /bin/bash hakase
passwd hakaseOra aggiungi l’utente al gruppo ‘docker‘ in modo che l’utente possa utilizzare il comando docker e riavvia il servizio docker:
usermod -a -G docker hakase
systemctl restart dockerAccedi all’utente ‘hakase’ e crea una nuova directory per il progetto WordPress:
su - hakase
mkdir -p wordpress-compose
cd wordpress-compose/Successivamente, crea un nuovo file chiamato ‘docker-compose.yml‘, e crea una nuova directory per il progetto. Digita semplicemente i comandi qui sotto:
touch docker-compose.yml
mkdir -p nginx/
mkdir -p db-data/
mkdir -p logs/nginx/
mkdir -p wordpress/Elenco file e directory del progetto:
docker-compose.yml: Questo è il file di configurazione docker-compose, devi crearlo quando inizi un nuovo progetto docker-compose.
nginx/: Questa directory è utilizzata per la nostra configurazione nginx aggiuntiva come l’host virtuale ecc.
db-data/: Il volume/directory per i dati mysql. I dati sql da ‘/var/lib/mysql’ sono montati nella directory db-data.
logs/: Directory per i log dell’applicazione, nginx, mariadb e php-fpm.
wordpress/: Tutti i file di wordpress saranno disponibili in quella directory.
Nella directory ‘nginx’, crea un nuovo file di configurazione per il nostro host virtuale wordpress.
Crea un nuovo file wordpress.conf:
vim nginx/wordpress.confIncolla la configurazione qui sotto:
server {
listen 80;
server_name wp-hakase.co;
root /var/www/html;
index index.php;
access_log /var/log/nginx/hakase-access.log;
error_log /var/log/nginx/hakase-error.log;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass wordpress:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}Salva il file ed esci da vim.
Passo 4 - Configurare Docker-Compose
In questo passo, inizieremo a modificare il file docker-compose.yml. Quando vuoi avviare il progetto docker-compose, assicurati di creare prima il file docker-compose.yml come facciamo qui sotto.
Modifica docker-compose.yml con vim:
vim docker-compose.ymlDefinisci i tuoi servizi, nella prima riga definiremo Nginx. Stiamo utilizzando l’immagine docker ufficiale di Nginx, l’ultima versione, e configurare il mapping delle porte per la porta 80 sul contenitore alla porta 80 sull’host. Successivamente, configura i volumi docker, il volume per la nostra configurazione dell’host virtuale Nginx, volume per i file di log di Nginx e il volume della directory radice web ‘/var/www/html’. Il contenitore Nginx è collegato al contenitore WordPress.
Incolla la configurazione qui sotto:
ginx:
image: nginx:latest
ports:
- '80:80'
volumes:
- ./nginx:/etc/nginx/conf.d
- ./logs/nginx:/var/log/nginx
- ./wordpress:/var/www/html
links:
- wordpress
restart: alwaysSuccessivamente, definisci il server MySQL. Stiamo utilizzando l’immagine di MariaDB, versione più recente. Configura il mapping delle porte per il contenitore sulla porta 3306 e configura la password di root di MySQL con la variabile d’ambiente ‘MYSQL_ROOT_PASSWORD’. Infine, configura il volume del contenitore per la directory dei dati MySQL.
Incolla la configurazione qui sotto:
mysql:
image: mariadb
ports:
- '3306:3306'
volumes:
- ./db-data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=aqwe123
restart: alwaysPoi configureremo il servizio WordPress utilizzando l’immagine docker di WordPress 4.7 con PHP-FPM 7.0 installato. Configura la porta per PHP-fpm sulla porta 9000, abilita il volume docker per la directory web ‘/var/www/html’ alla directory host ‘wordpress’, imposta il database definendo la variabile d’ambiente di WordPress e collega il servizio WordPress a mysql.
Incolla la configurazione qui sotto:
wordpress:
image: wordpress:4.7.1-php7.0-fpm
ports:
- '9000:9000'
volumes:
- ./wordpress:/var/www/html
environment:
- WORDPRESS_DB_NAME=wpdb
- WORDPRESS_TABLE_PREFIX=wp_
- WORDPRESS_DB_HOST=mysql
- WORDPRESS_DB_PASSWORD=aqwe123
links:
- mysql
restart: alwaysDopo aver aggiunto le tre parti nel file docker-compose.yml, salva il file ed esci dall’editor vim.
La nostra configurazione docker-compose è pronta.
Passo 5 - Eseguire Docker-compose
Inizia a creare i nuovi contenitori con docker compose. Vai nella directory wordpress-compose e avvia i nuovi contenitori basati sul nostro file compose.
cd ~/wordpress-compose/
docker-compose up -dPuoi vedere i risultati del comando. Sono stati creati tre contenitori. Controlliamo lo stato del contenitore con l’opzione ps:
docker-compose psDi seguito il risultato:

Se vuoi vedere l’output del log dal contenitore, puoi usare i comandi qui sotto:
docker-compose logs nginx
docker-compose logs mysql
docker-compose logs wordpressLog del contenitore:

Nota:
Se vedi nel log del contenitore WordPress un errore riguardante la connessione MySQL rifiutata, ignoralo.
Passo 6 - Installare Wordpress
Prima di fare questo passo, controlliamo le porte disponibili/aperte sul sistema. Assicurati di avere 3 porte aperte, porta 80, 3306 e porta 9000.
netstat -plntuI risultati sono qui sotto:

Ora apri il tuo browser web e digita l’URL del server o l’indirizzo IP.
Puoi vedere la pagina di installazione di WordPress. Scegli la tua lingua e fai clic su ‘Continua‘.

Compila i dettagli del tuo sito come titolo del sito, utente admin e password, il tuo indirizzo email e poi fai clic su ‘Installa Wordpress‘.

Verrai reindirizzato al ‘Pannello di Amministrazione di Wordpress‘.

E questo è il mio post di esempio WordPress ciao mondo.

Wordpress è stato installato con docker-compose.
Passo 7 - Accesso al Contenitore Docker
Questo è un passo aggiuntivo su come accedere a un contenitore con docker-compose. Controlla che tutti i contenitori siano disponibili e mostra il loro stato:
docker-compose psAbbiamo già 3 contenitori, ora possiamo provare a effettuare il login in ciascun contenitore. Accedi al primo contenitore Nginx con il comando docker-compose.
docker-compose exec nginx bashnginx: nome del servizio nel file docker-compose docker-compose.yml
bash: esegui il comando della shell bash
Ora controlla la nostra configurazione dell’host virtuale WordPress.
cat /etc/nginx/conf.d/wordpress.conf
I file sono disponibili nel contenitore.
Successivamente, prova a effettuare il login nel contenitore mysql, e poi accedi alla shell mysql con la nostra password nel file compose.
docker-compose exec mysql bash
mysql -u root -p
DIGITA LA PASSWORD DI ROOT MYSQLGuarda l’elenco dei database:
show databases;Vedrai il nostro database WordPress.

Nel contenitore ‘wordpress’, vedrai tutti i file di WordPress.
docker-compose exec wordpress bash
ls -lahTutti i contenitori sono accessibili.
Riferimenti
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.