Introduzione
Docker è un progetto open-source che nasce con l’intento di facilitare e automatizzare il processo di rilascio del software. La piattaforma permette infatti di creare, testare e distribuire applicazioni raccogliendole in unità standardizzate, chiamate container.
Plesk è un pannello di gestione hosting, disponibile sia per sistemi operativi Windows che Linux, che consente di amministrare in maniera semplice le diverse funzionalità del tuo spazio web.
Grazie ai suoi componenti aggiuntivi, anche il pannello Plesk offre Docker come estensione, permettendone l'utilizzo sia su host locale che su una macchina remota. In questo tutorial vedremo come abilitare l'utilizzo di Docker con Plesk e in che modo impostare delle regole proxy con NGINX.
Se vuoi approfondire meglio il funzionamento di questa tecnologia puoi seguire anche la nostra serie dedicata a Docker.
Requisiti
I requisiti fondamentali per utilizzare Docker con Plesk sono i seguenti:
- Docker può funzionare solo su un sistema con un'architettura a 64 bit;
- L'estensione è supportata sui seguenti sistemi operativi:
- CentOS7
- RedHat 7
- Debian 9
- Ubuntu 18.04
- AlmaLinux 8.x
- Per poter utilizzare l’estensione “Docker” tramite Plesk è necessario acquistare una licenza aggiuntiva, nel caso in cui lo si utilizzi su una macchina remota (la licenza non è necessaria nel caso di host locale).
Nota: Il modulo Docker Remote Node Management è presente fra le estensioni incluse nella licenza Power Pack, che è possibile acquistare ad un prezzo vantaggioso su Aruba Cloud insieme a una licenza Plesk.
Usare Docker
Plesk offre un catalogo di estensioni, all'interno del quale sono presenti diversi componenti aggiuntivi che potrai integrare sul tuo Cloud Server, fra cui anche quello di Docker.
Per aggiungere l’estensione Docker, esegui l'accesso al pannello di controllo Plesk e apri la scheda “Estensioni”. Quindi ricerca l’estensione Docker e aggiungila.
Una volta installata l'estensione Docker, il pannello di navigazione di Plesk offrirà una nuova voce per accedervi.
Immagini di Docker
Nel catalogo, Plesk visualizza diverse immagini, tra le quali alcune vengono consigliate. È ovviamente possibile cercare immagini specifiche usando la funzione di ricerca.
Per ogni applicazione trovi più versioni disponibili, da poter selezionare tramite l'apposito campo.
Per eseguire un container di Docker:
- Accedi al Catalogo Immagini di Docker;
- Cerca le applicazioni di cui hai bisogno nel catalogo;
- Seleziona e Conferma una versione cliccando sulla voce "Esegui" o , nel caso in cui volessi usare la versione più recente, puoi evitare la selezione e cliccare solo sulla conferma;
- Specifica alcune impostazioni per creare una configurazione iniziale del container creato.
A questo punto, potrai visualizzare la lista dei container disponibili nella parte superiore del Catalogo Docker.
Impostazioni del Container
Per modificare la configurazione di un container, vai nella sezione "Impostazioni".
Limitazione della memoria
Per ora, Docker offre solo la possibilità di limitare il consumo di RAM da parte di un container.
Per far ciò è sufficiente togliere la spunta dalla casella di controllo con la voce "Illimitato" e specificare manualmente un valore limite di Megabyte nell'apposito campo.
Avvio automatico
Ti consigliamo di tenere attiva questa configurazione poichè ti permetterà di esser sicuro che, a prescindere dai riavvii del sistema, il container si avvierà e funzionerà senza necessitare di alcun intervento.
Port Mapping
Di default, è attiva in Docker una funzionalità di Mappatura automatica della porta su una porta del sistema host. Ovviamente, è possibile passare all'inserimento manuale di una porta.
Mappatura dei volumi
I volumi di Docker sono delle directory del server montato nel container. In questo modo, in ogni applicazione web sarà presente uno spazio di archiviazione permanente per il sistema host.
È possibile eseguire i backup di questi dati persistenti e, inoltre, mantenerli anche in caso di cancellazione del container a cui sono dedicati.
Per aggiungere una mappatura di volume, puoi specificare due voci:
- Destinazione: il percorso assoluto di una directory nel container;
- Origine: il percorso assoluto di una directory sul server nel quale è montato il container.
Specificare variabili di ambiente
Le variabili di ambiente sono variabili da specificare nell'applicazione, ma potranno essere utilizzate in seguito nei container che andrai a creare. Plesk consente di aggiungere tutte le variabili di cui potresti aver bisogno.
Operazioni con i container
Ci sono diverse operazioni possibili con i container di Docker:
- Riavviare o Arrestare un container. Nel riavvio, il container viene ricreato con la stessa configurazione ma i dati, se non salvati nel volumi montati, verranno persi;
- Visualizzare registri e il consumo di risorse di un container;
- Modificare le impostazioni di un container;
- Rinominare un container;
- Ricreare un container usando un'altra versione di una immagine;
- Salvare un'immagine di un container per usarla nella creazione di container nuovi, ma con le stesse configurazioni;
- Acquisire una istantanea del container;
- Rimuovere un container.
Ricreare un container
Può capitare che ti possa servire una versione diversa dell'applicazione all'interno del tuo container.
Ricreare il container comporta il mantenimento della configurazione per il nuovo container, ma la perdita dei dati, nel caso in cui non siano stati immagazzinati all'interno dei volumi.
Per eseguire questa procedura, basterà cliccare sulla voce che indica i dettagli del container e individuare la voce "Ricrea". Da qui, potrai specificare la nuova versione dell'immagine che desideri montare sul container, oltre alle variabili di ambiente da voler inserire.
Utilizzo di Docker Remoto
Per usare Docker remoto, avrai bisogno di un componente aggiuntivo con una chiave di licenza di Plesk.
La licenza per “Docker Remote Node Management” può essere acquistata singolarmente o all’interno di uno dei pacchetti di Plesk, come il Power Pack. Si tratta di un modulo che include diverse estensioni, tra cui anche quella di Docker Remote Node Management, che ti permetterà di gestire Docker su una macchina remota.
Se hai il tuo Cloud Server su Aruba puoi aggiungere Power Pack ad un prezzo vantaggioso in fase di acquisto della licenza Plesk, andando nella sezione “Licenze Plesk” all'interno del pannello di controllo del tuo server su Aruba Cloud.
Una volta acquistata la licenza, potrai quindi seguire la procedura indicata nei prossimi paragrafi per la gestione dei server per Docker Remoto.
N.B. Senza acquistare alcuna licenza, potrai testare il servizio di Docker solamente sul tuo host locale.
Usare i servizi remoti
Per usare Docker in esecuzione su un server remoto, potrai ricorrere a questi passi su Plesk:
- Vai su "Strumenti e impostazioni" e clicca sulla voce "Docker", nella sezione "Gestione del server"
- Clicca su "Aggiungi Server" e specifica la configurazione del nuovo server remoto per Docker.
- Conclusa la configurazione, clicca sulla voce "Impostare come attivo"
Puoi anche passare da un server all'altro semplicemente visualizzando la lista dei server da poter usare e cliccando sulla voce "Impostare come attivo", dopo aver selezionato il server interessato.
Gestione di immagini personalizzate
Per creare una nuova immagine di un container configurato con delle impostazioni personalizzate, potrai usare il comando "Salva come immagine". Tramite questa funzionalità, potrai acquisire una istantanea del container in quel momento e renderlo disponibile nel catalogo delle immagini. L'immagine salverà le impostazioni personalizzate e le variabili di ambiente scelte.
Per creare una immagine da uno dei container , segui i seguenti passi:
- Seleziona la voce "Dettagli" presente sotto il nome di un tuo container
- Seleziona la voce "Salva come immagine"
Ora disporrai di una istantanea del tuo container, che avrà un ID univoco e una etichetta per specificarne la versione. Potrai, ovviamente, modificare queste informazioni secondo le tue preferenze.
Gestione di immagini locali
Le immagini locali sono salvate da Docker su un disco locale, perciò non ci sarà bisogno di eseguire alcun download dal catalogo.
Una immagine diventa locale in diversi modi , alcuni dei quali includono l'upload di una immagine su Plesk o la creazione di essa da un container.
Per accedere al catalogo delle immagini locali, sarà sufficiente ricercare la sezione "Catalogo immagini su Docker".
Aprendo il catalogo, potrai facilmente applicare il filtro "locale" per ricercare le immagini salvate sul disco.
Puoi anche visualizzare le immagini locali (e alcune informazioni su di esse) per ogni prodotto specifico, cliccando sul suo nome.
Ovviamente, nelle funzionalità di gestione delle immagini, è compresa anche la funzione di rimozione di una singola o di tutte le immagini presenti su Docker.
Impostare nginx come proxy per le richieste dai domini a un container
Alcuni container di Docker mettono le porte a disposizione degli utenti, per consentire loro di accedere alle applicazioni contenute nei container.
Tuttavia, dover sempre specificare la porta alla quale collegarsi, in fase di scrittura dell'URL per connettersi al servizio contenuto in Docker, diviene un'attività abbastanza scomoda.
Per tale motivo, il proxy nginx offre un servizio di reindirizzamento per le richieste che provengono da domini e vengono indirizzate alla porta standard. Tale funzionalità permetterà di non dover ogni volta ripetere la specifica della porta a cui collegarsi.
Requisiti
Per seguire la procedura di configurazione del proxy occorre, prima di tutto, che tu abbia una particolare configurazione su Plesk e su Docker:
- Il tool nginx deve essere in esecuzione su Plesk;
- La mappatura automatica delle porte deve essere disattivata;
- Devi aver mappato manualmente una porta di un container in riferimento a una porta nel sistema host.
Se tali requisiti sono soddisfatti, potrai procedere con la configurazione di nginx.
Abilitazione di nginx e impostazione delle regole proxy
Potrai ora abilitare le richieste che arrivano da domini su una specifica porta, mappata manualmente su Docker, e reindirizzarla a una porta standard su nginx.
Per far ciò, occorre impostare una regola che includa nginx nelle impostazioni del dominio.
Comincia collegandoti alla sezione dedicata alla regole proxy. Potrai trovare questa sezione orientandoti nella sezione "Siti web e domini" e cliccando sul nome del tuo dominio.
Nella sezione "Regole Proxy", potrai ora aggiungere delle nuove regole. Cliccando su "Aggiungi regola", verrai rimandato a una schermata dove specificare alcune informazioni:
- URL del sito web che utilizza un app in esecuzione nel container
- Container
- Porta , precedentemente mappata nelle impostazioni del container interessato
Per verificare la corretta configurazione delle regole proxy, potrai controllarne la presenza nel file di configurazione del server web, denominato nginx.conf.
Qui sotto, un esempio di come appare, all'interno del file di configurazione, una regola specificata per il dominio:
#extension docker begin
location ~ ^/.* {
proxy_pass http://0.0.0.0:9080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
#extension docker end
Conclusioni
Alla fine di questa guida, sarai stato in grado di abilitare e configurare correttamente dei container per Docker tramite Plesk, e di impostare delle regole proxy con nginx.