Come configurare WordPress utilizzando Docker in Ubuntu

WordPress è il sistema di gestione dei contenuti (CMS) più popolare al mondo. Più del 40% del web gira su WordPress. Docker è un sistema di containerizzazione utilizzato per eseguire il software in un ambiente isolato. Il concetto di containerizzazione non è nuovo nel mondo dello sviluppo software. Ma Docker lo rende molto intuitivo per gli sviluppatori.

In questo articolo, ti mostreremo come installare il sito WordPress in un contenitore Docker.

Perché Docker?

Perché Docker, potresti chiedere?

La risposta è semplicità. In Docker, l’applicazione è contenuta all’interno di un’immagine. Non è necessario eseguire complicate installazioni e configurazioni per farlo funzionare.

Per non parlare del fatto che è anche più facile e veloce migrare/aggiornare a un altro server. Dici che il tuo WordPress diventa molto popolare e devi aggiornare il tuo server esistente? È facile farlo con Docker, poiché tutto è già containerizzato. Se sviluppi qualcosa utilizzando Docker, dopo la distribuzione funziona ovunque.

Installazione Docker

In questo articolo, installeremo un motore Docker all’interno del server Ubuntu.

Prima di installare qualsiasi cosa, se hai una versione precedente di Docker installata nel tuo sistema, rimuovila. Esegui questo comando nel tuo terminale per rimuovere tutte le versioni precedenti di Docker.

sudo apt autoremove docker docker-engine docker.io containerd runc

Ora iniziamo la nostra installazione:

  1. Aggiorna gli indici dei pacchetti locali eseguendo apt-get update e installa le dipendenze per il motore Docker.
sudo apt update
sudo apt install ca-certificates curl gnupg lsb-release
  1. Aggiungi la chiave GPG ufficiale di Docker.
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  1. Configura il repository.
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  1. Installa l’ultima versione del motore Docker.
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
  1. Verifica l’installazione di Docker eseguendo un’immagine Hello World.
sudo docker run hello-world

Se questa immagine Docker Hello World viene eseguita senza alcun errore, congratulazioni. Hai installato con successo Docker sulla tua macchina Ubuntu Linux.

Installazione desktop Docker

Se sei un utente Linux desktop e desideri installare Docker per il tuo scopo di sviluppo, il desktop Docker dovrebbe essere il candidato preferito rispetto al motore Docker. Docker Desktop offre un’esperienza unificata e un modo indipendente dalla piattaforma per creare, eseguire e inviare immagini Docker.

Desktop mobile

Il desktop Docker in Linux viene eseguito all’interno di una macchina virtuale, che è del tutto opposto al modello di kernel condiviso del motore Docker. Questo è il motivo per cui la tua CPU deve supportare la tecnologia di virtualizzazione e KVM Linux affinché Docker Desktop funzioni. Puoi controllare lo stato della virtualizzazione nelle impostazioni UEFI/BIOS. Docker Desktop è supportato nelle principali distribuzioni Linux come Ubuntu, Debian e fedora.

La necessità di utilizzare una macchina virtuale per il desktop Docker è multiforme. Alcuni di essi sono descritti di seguito.

  1. L’utilizzo di una macchina virtuale offre prestazioni ed esperienze coerenti con il desktop Docker su tutte le piattaforme (Windows, Linux, macOS, Raspberry Pi, ecc.).
  2. Poiché gli utenti si attengono alla versione di rilascio del supporto a lungo termine della loro distribuzione, non ottengono i vantaggi delle ultime funzionalità del kernel. L’uso di una macchina virtuale risolve questo problema. Ora Docker può selezionare la sua versione del kernel e può funzionare con l’ultimo kernel Linux.
  3. L’uso di una macchina virtuale fornisce anche sicurezza all’utente. Come sappiamo chiunque può caricare immagini sull’hub Docker. A volte le immagini possono contenere del codice dannoso che può sfruttare il tuo desktop. Se estrai tali immagini dannose sulla tua macchina, queste immagini possono distruggere la tua macchina.
  4. Poiché il desktop Docker funziona all’interno di una macchina virtuale, le immagini dannose non possono influire sulla macchina host. Ciò rende il desktop Docker un candidato irresistibile per provare nuove immagini Docker.
In relazione :  Come impostare la lingua di WordPress

Innanzitutto assicurati che il tuo sistema supporti KVM, qemu, systemd-init e app indicator. Devi avere almeno 4 GB di RAM sul tuo sistema.

  1. Disinstalla qualsiasi versione precedente di Docker-desktop installata nel tuo sistema
sudo apt remove docker-desktop
  1. Per una pulizia completa e l’eliminazione di tutti i file di configurazione, eseguire il comando seguente
rm -r $HOME/.docker/desktop
sudo rm /usr/local/bin/com.docker.cli
sudo apt purge docker-desktop
  1. Configura il repository del pacchetto Docker eseguendo i seguenti comandi.
sudo apt update
sudo apt install ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
 
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
 
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  1. Ora vai a questo pagina di rilascio e scarica l’ultimo .deb pacchetto di Docker-desktop.
  2. Installa il .deb pacchetto utilizzando dpkg.
sudo apt update
sudo apt install ./docker-desktop-<version>-<arch>.deb

Per avviare il desktop Docker, cerca nel menu dell’applicazione e avvia l’applicazione come una normale. Lì puoi vedere una guida di benvenuto. Segui la guida per saperne di più sul desktop Docker per Linux e su come usarlo. Puoi anche creare contenitori e immagini con l’aiuto dell’applicazione desktop Docker.

Servizi di cui abbiamo bisogno per WordPress

Abbiamo bisogno principalmente di 3 componenti per eseguire WordPress all’interno dei container Docker. Innanzitutto, abbiamo bisogno di WordPress stesso, quindi abbiamo bisogno di un database MySQL e quindi abbiamo bisogno di uno spazio di archiviazione o di un volume.

WordPress memorizza tutti i dati generati dagli utenti all’interno di un database MySQL. Pertanto il database MySQL assume un ruolo cruciale nella nostra installazione di WordPress.

Lo spazio di archiviazione o il volume è necessario quando si desidera installare nuovi temi o plug-in. Questi file di temi o plug-in verranno archiviati all’interno dello spazio del volume.

Utilizzo di un file di composizione Docker

Poiché la nostra applicazione richiede più di un servizio, è meglio utilizzare Docker-compose. Docker Compose è uno strumento Docker che avvia e gestisce i contenitori Docker e stabilisce una relazione tra di loro.

  1. Crea un nuovo file docker-compose.yml.
sudo nano docker-compose.yml
  1. Dalla sezione precedente, abbiamo appreso che abbiamo bisogno principalmente di 3 servizi. WordPress stesso, un database MySQL e spazio di volume. Pertanto il nostro file di composizione Docker sarà simile a questo. Puoi copiare questo file docker-compose.yml se non hai bisogno di altre personalizzazioni.
version: '3.3'

services:
   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     volumes:
       - wordpress_files:/var/www/html
     ports:
       - "80:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: my_wordpress_db_password

   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: my_db_root_password
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: my_wordpress_db_password

volumes:
    wordpress_files:
    db_data:

Nel file di composizione della finestra mobile sopra, definiamo prima WordPress e DB (usando il database MySQL) come un servizio. Quindi WordPress dipende da DB per salvare i suoi dati. Usiamo l’ultima immagine di WordPress per creare un container WordPress. Il contenitore di WordPress riserva la porta 80. È la porta predefinita per i servizi web. Pertanto, quando digiti il ​​tuo http://nome-dominio.com URL nel tuo browser, questo contenitore di WordPress ti offre una risposta.

In relazione :  Come configurare RetroArch, l'emulatore di giochi retrò multipiattaforma open source

All’interno del servizio database, utilizziamo l’immagine MySQL versione 5.7 per creare il nostro contenitore. Quindi diamo tutte le credenziali necessarie per parlare con il nostro container WordPress.

Infine, definiamo i nostri volumi. Lì verranno archiviati tutti i file di WordPress e i dati del database. Se stai eseguendo questa configurazione all’interno di un server, devi eseguire regolarmente il backup di questo volume.

Esecuzione di WordPress all’interno di Docker

Ora crea una cartella o una directory e sposta questo file docker-compose.yml all’interno della directory. Quindi esegui questo comando.

docker-compose up -d

Dopo questo comando, Docker estrarrà tutte le immagini che descriviamo all’interno del nostro file docker-compose.yml e ne creerà un contenitore. La prima esecuzione può richiedere molto tempo poiché Docker deve scaricare tutti i file da DockerHub. Dopo aver impostato le cose, quando carichi l’indirizzo IP del tuo server nel browser, dovresti vedere la schermata di installazione di WordPress.

Congratulazioni! Hai eseguito correttamente WordPress in un contenitore Docker. Tieni presente che ciò non significa che sia ancora pronto per l’uso in produzione: devi comunque configurare un certificato SSL.

Se vuoi saperne di più su Docker, puoi seguire questo articolo per principianti.

Domande frequenti

Posso eseguire Docker-desktop contemporaneamente al motore Docker?

Sì, puoi eseguire il Docker-desktop e il motore Docker contemporaneamente sul tuo computer. Ma quando entrambi i servizi devono accedere alle stesse risorse di sistema come porte di rete o volumi, si crea un conflitto tra di loro. Pertanto è consigliabile interrompere un servizio prima di avviarne uno.

I desktop Docker possono essere fermati facilmente con l’aiuto di un’app GUI (interfaccia utente grafica). Per arrestare il motore Docker, eseguire il comando seguente.

sudo systemctl stop docker docker.socket containerd
sudo systemctl disable docker docker.socket containerd

Come avviare automaticamente il sito WordPress dopo il riavvio?

Se hai interrotto il tuo server per manutenzione o per aggiornare alcune cose, puoi configurarlo per l’avvio automatico di WordPress dopo ogni riavvio utilizzando Docker. Basta aggiungere restart: always parametro in ogni servizio del tuo file di composizione mobile. Puoi vedere questo parametro che abbiamo aggiunto nel file docker-compose.yml.

Posso usare Nginx con Docker-compose e WordPress?

Sì, puoi utilizzare Nginx o qualsiasi altro tipo di server per servire i contenuti di WordPress utilizzando Docker. Nginx può essere utilizzato anche come proxy inverso. Puoi distribuire facilmente il tuo traffico installando Nginx con Docker e WordPress.