Guarda il video tutorial

Docker è una piattaforma per applicazioni distribuite, dedicata a sviluppatori e amministratori di sistema, che consente l’esecuzione di applicazioni in container. Permette l’uso di software specifico, come Redis o MongoDB, o di una versione specifica del software, che potrebbe non essere supportata dal sistema operativo utilizzato o potrebbe richiedere la compilazione.

Docker è disponibile come estensione di Plesk. Plesk consente di eseguire e gestire container basati su immagini di Docker specifiche e di utilizzare Docker non soltanto sull’host locale, ma anche sulla macchina remota selezionata.

Requisiti e limitazioni

  • Docker is supported in Plesk for the following operating systems: CentOS 7, RedHat 7, Debian 8, Debian 9, Ubuntu 14.04, Ubuntu 16.04, and Ubuntu 18.04.

    In Plesk per Windows è possibile utilizzare Docker installato su un computer remoto (consulta Uso di Docker remoto, di seguito in questa sezione).

  • Non è possibile utilizzare Docker in Plesk in esecuzione su Windows Server 2008.

  • Non è possibile utilizzare Docket in Plesk distribuito in un container di Docker.

  • Per utilizzare i servizi di Docker in Plesk è necessaria una licenza aggiuntiva. La licenza può essere acquistata separatamente o come parte dell” Hosting Pack.

  • Docker è eseguibile solo nei sistemi x64.

  • I container di Docker in Plesk non possono essere sottoposti a migrazione o backup. Tuttavia, è possibile sottoporre a backup i dati utilizzati dai container (vedere Mappatura di volumi, di seguito) o scaricare istantanee.

  • Virtuozzo 7 con installato l” Update 1 Hotfix 1 (7.0.1-686), o versioni successive, è supportato. Tieni presente che, a partire da questo aggiornamento, i nuovi container basati su CentOS 7 vengono creati con il firewall abilitato per impostazione predefinita, poiché Virtuozzo tende a garantire una sicurezza superiore. L’amministratore di Plesk deve configurare manualmente il firewall, per assicurare che le porte necessarie al funzionamento di Plesk siano aperte.

Come iniziare a utilizzare Docker

Installare l’estensione Docker in Plesk.

Per iniziare a utilizzarla, accedere a Docker nel pannello di navigazione sinistro.

Il Catalogo immagini

Nel catalogo (Docker > Catalogo Immagini Docker), Plesk visualizza immagini provenienti da https://hub.docker.com/explore. Per impostazione predefinita, vengono visualizzate solo le immagini consigliate. Per visualizzare altre immagini, utilizzare la casella di ricerca o i filtri.

Per ogni applicazione possono essere disponibili più versioni. È possibile eseguire una versione specifica selezionando l’etichetta appropriata, come mostrato di seguito:

image 76044

Per utilizzare i filtri:

  1. Fare clic sul tasto freccia image 76322 accanto alla casella di ricerca.

  2. Specificare uno o entrambi questi elementi: il nome dell’immagine e l’archivio.

    Gli archivi che è possibile selezionare sono:

    • Archivio locale - contiene immagini locali. Queste sono immagini già scaricate e ora memorizzate sul server con Docker. Per informazioni dettagliate, consultare Gestione di immagini locali più avanti in questa sezione.
    • Hub di Docker - https://hub.docker.com/explore.

Per eseguire un container:

  1. Accedere a Docker > Catalogo Immagini Docker.

  2. Utilizzare la casella di ricerca o i filtri per trovare rapidamente applicazioni nel catalogo.

  3. Per visualizzare la descrizione dell’applicazione e la relativa documentazione sull’Hub di Docker, fare clic sul nome dell’immagine. Ciò non riguarda le immagini locali.

  4. Per eseguire una versione specifica, fare clic sulla freccia accanto al pulsante Esegui e selezionare la versione dell’applicazione.

  5. Per eseguire la versione più recente dell’applicazione selezionata, è sufficiente fare clic su Esegui.

    Se l’immagine è stata memorizzata a livello locale, il pulsante mostra l’indicazione Esegui (locale).

    Plesk crea un container e richiede di specificarne le impostazioni, come ad esempio le variabili di ambiente, quindi lo esegue. È possibile annullare l’esecuzione facendo clic su Annulla nella schermata Impostazioni. Per informazioni dettagliate sulle impostazioni, consultare Impostazioni dei container più avanti in questa sezione.

  6. Il container viene visualizzato nella lista di container nell’area superiore della pagina Catalogo Docker.

    image 76046

Consultare il registro (Registri) per individuare le impostazioni necessarie per una corretta esecuzione del container.

Impostazioni dei container

Nota: se si desidera modificare le impostazioni di un container, non è necessario arrestare il container: quando si salveranno le nuove impostazioni, Plesk ricreerà il container.

Per modificare le impostazioni di un container, accedere a Impostazioni o Dettagli > Impostazioni.

image 78131

Limitazione della memoria

Per impostazione predefinita, il consumo di RAM in un container di Docker è illimitato. Per limitarlo, deselezionare la casella di controllo Illimitato e specificare il valore del limite in Megabyte, nel campo Limite di memoria.

Nota: al momento non è possibile limitare il consumo di CPU e disco per un container di Docker.

Nota: i container di Docker sono oggetti a livello dell’amministratore e non sono controllati da limiti cgroup a livello dell’abbonamento (consumo di CPU, RAM e disco).

Avvio automatico

Se l’opzione Avvio automatico dopo il riavvio del sistema non è selezionata, dopo il riavvio del sistema i siti web che utilizzano questo container potrebbero essere inattivi e potrebbe essere necessario avviare il container manualmente.

Mappatura della porta

Per impostazione predefinita, l’opzione Mappatura automatica della porta è attiva e la porta interna del container viene mappata su una porta del sistema host (per esempio, 32768).

Per modificare la porta nel sistema host, deselezionare l’opzione Mappatura porte automatica e specificare un’altra porta esterna in Mappatura manuale. Se Mappatura manuale non viene visualizzato quando si deseleziona la casella, il container non espone le porte.

Avvertimento: se la mappatura della porta è configurata, Docker si connette alla porta specificata su tutte le interfacce di rete del sistema host. Solitamente, ciò significa che l’applicazione è accessibile da qualsiasi ubicazione. Docker presuppone che l’autenticazione venga effettuata dall’applicazione stessa, ma a volte non è così (ad esempio, MySQL per impostazione predefinita non permette l’accesso anonimo, ma redis lo consente).

Plesk non può stabilire quale servizio sia installato in un container di Docker specifico, né controllarne l’accesso. Se occorre vietare l’accesso all’applicazione dall’esterno di Plesk, procedere manualmente tramite il firewall del sistema host.

Mappatura di volumi

I volumi di Docker sono directory sul server montato su un container Docker, in modo da assicurare uno spazio di archiviazione permanente e accessibile dal sistema host. I dati nei volumi di Docker possono essere sottoposti a backup e, più la cosa importante, non vengono eliminati quando si arresta o si elimina un container.

For more information about data in containers, refer to the Docker documentation.

Per aggiungere una mappatura di volume, specificare quanto segue:

  • Nel campo «Destinazione» a sinistra - il percorso assoluto di una directory nel container.
  • Nel campo «Origine» a destra - il percorso assoluto della directory sul server nella quale si desidera montare il container.

Per mappare altre directory, fare clic su Aggiungi mappatura.

Impostazione di variabili di ambiente

Le variabili di ambiente vengono utilizzate dall’applicazione all’interno di un container. Può essere necessario aggiungere variabili o modificare quelle esistenti. Plesk consente di aggiungere tutte le variabili richieste.

Operazioni con i container

I container permettono di eseguire quanto segue:

  • Riavviare (Riavvia) o arrestare (Arresta) un container. In questi casi, il container viene ricreato con le impostazioni correnti.

    Nota: se i dati non vengono salvati nei volumi montati (vedere la sezione Mappatura di volumi, di seguito), vanno perduti.

  • Visualizzare registri e consumo di risorse (Dettagli).

  • Modificare le impostazioni dei container, come ad esempio le variabili di ambiente o la mappatura dei volumi (Impostazioni o Dettagli > Impostazioni).

    In Plesk su CentOS, è possibile impostare un limite di memoria per un container (Impostazioni > Limite di memoria).

  • Rinominare un container (Impostazioni > Nome container).

  • Ricreare un container utilizzando la stessa o un’altra versione dell’immagine (Dettagli > Ricrea).

  • Creare un’immagine basata su un container utilizzando impostazioni personalizzate (Dettagli > Salva come immagine).

  • Acquisire un’istantanea di un container (Dettagli > Scarica istantanea).

  • Rimuovere un container (Rimuovi o Dettagli > Rimuovi).

Ricreazione di un container

Di solito occorre ricreare un container quando si desidera aggiornare l’applicazione a una versione più recente. Di fatto, è possibile ricreare un container utilizzando qualsiasi versione dell’applicazione disponibile nel catalogo, non soltanto una versione più recente.

Durante la procedura di nuova creazione, le impostazioni personalizzate vengono conservate. Per conservare dati utilizzati dall’applicazione all’interno di un container, è necessario specificare la mappatura dei volumi prima di ricreare un container. La mappatura dei volumi consente di accedere alle directory utilizzate all’interno di un container (consultare Mappatura di volumi nelle impostazioni dei container).

Per ricreare un container:

  1. Accedere a Docker e fare clic su Dettagli sotto il container da ricreare.
  2. Fare clic su Ricrea nelle impostazioni del contenitore e specificare la versione dell’immagine, nonché se si desidera utilizzare variabili di ambiente predefinite.

Utilizzo di Docker remoto

Per impostazione predefinita, Plesk utilizza Docker installato come proprio componente (locale). Tuttavia, è possibile ricorrere a uno o più servizi di Docker installati all’esterno di Plesk. Nota: è possibile utilizzare solo un servizio per volta. In Plesk, il nome host del server selezionato viene visualizzato nel titolo del Catalogo Docker.

Nota: per gestire i servizi di Docker remoti è necessario un componente aggiuntivo con una chiave di licenza di Plesk. Senza tale componente aggiuntivo, è possibile solamente gestire il servizio di Docker locale, che viene eseguito sul server di Plesk.

Configurazione di servizi remoti

Configurare il server di Docker remoto come descritto nella documentazione di Docker, al fine di utilizzarlo come server remoto di Plesk.

Gestione di servizi remoti

La procedura seguente è applicabile sia a Plesk per Linux che a Plesk per Windows.

Per iniziare a utilizzare Docker in esecuzione su un host remoto:

  1. Accedere a Strumenti e Impostazioni > Docker (in Gestione del server).
  2. Fare clic su Aggiungi Server e specificare le impostazioni del server remoto con Docker.
  3. Per iniziare a utilizzare questo servizio di Docker in Plesk, lasciare selezionata l’opzione Impostare come attivo.

Il link a Docker viene visualizzato nel pannello di navigazione sinistro.

Per alternare i servizi di Docker:

  1. Accedere a Strumenti e Impostazioni > Docker (in Gestione del server).
  2. Nella lista dei server, selezionare il server da utilizzare e fare clic su Impostare come attivo.

In alternativa, è possibile impostare il server come attivo durante la modifica delle relative impostazioni.

image 76284

Creazione di immagini con impostazioni personalizzate

Se si desidera creare una nuova immagine basata sulle modifiche apportate a un container, utilizzare il comando Salva come immagine. Il comando acquisisce un’istantanea del container, che viene visualizzato come una nuova immagine nel catalogo delle immagini. In questo modo è possibile creare immagini con impostazioni personalizzate quali variabili di ambiente.

Per creare un’immagine da uno dei container:

Accedere a Docker > Dettagli sotto il nome del container > Salva come immagine, e specificare, se desiderato:

  • Nome dell’immagine. Per impostazione predefinita, un ID viene generato e utilizzato come nome.
  • Etichetta. Qui è possibile specificare la versione dell’immagine. Per impostazione predefinita, la versione è «la più recente».

L’immagine creata viene visualizzata nel catalogo delle immagini e contrassegnata come immagine locale.

Gestione di immagini locali

Le immagini locali sono immagini memorizzate da Docker sul disco locale, pertanto non occorre scaricarle dal Catalogo immagini.

Un’immagine diventa locale nelle situazioni seguenti:

  • L’utente ha selezionato una versione (etichetta) qualsiasi di un’immagine ed è iniziato il download dell’immagine. Se l’utente in seguito esegue un container o ne annulla l’esecuzione (nella schermata Impostazioni), l’immagine viene salvata localmente.
  • L’utente carica un’immagine nel catalogo di Docker in Plesk (Carica immagine nel Catalogo Immagini Docker).
  • L’utente ha creato un’immagine personalizzata a partire da un container (consultare Creazione di immagini con impostazioni personalizzate).
  • L’utente ha creato un’immagine tramite l’interfaccia della riga di comando.

Se Docker comprende almeno una versione scaricata da un gruppo di versioni appartenenti a un’immagine, questa immagine viene contrassegnata come Immagine locale nel catalogo. Esegui (locale) significa che la versione più recente è già stata scaricata. Plesk inoltre mostra quante immagini locali sono disponibili per un prodotto.

image 76318

Per visualizzare immagini locali e rimuovere immagini locali obsolete:

  1. Accedere a Docker > Catalogo Immagini Docker.

  2. Per trovare tutte le immagini locali, fare clic sulla freccia accanto alla casella di ricerca e selezionare Locale nel filtro Archivio.

  3. Per visualizzare tutte le immagini locali di un prodotto specifico, fare clic sul link sotto il nome del prodotto. Vengono visualizzate le etichette di tutte le immagini locali e lo spazio occupato sul disco.

    image 76321

  4. Per rimuovere tutte le immagini, fare clic su Cancella tutte le immagini.

  5. Per rimuovere un’immagine specifica, fare clic sull’icona Rimuovi image 76316 accanto all’immagine da rimuovere.

Impostare nginx come proxy per le richieste dai domini a un container

Alcuni container Docker espongono le porte, in modo che gli utenti possano utilizzarle per accedere alle applicazioni incluse nei container stessi.

Quando si utilizza un’applicazione in un container Docker su un sito web, può essere scomodo specificare la porta non standard nell’URL corrispondente. Per evitare inconvenienti, è possibile impostare nginx come proxy per le richieste provenienti da domini e indirizzate a tale porta. Così i domini possono utilizzare una porta standard (come la 80) e non occorre più specificare esplicitamente la porta nell’URL.

Requisiti

  • Nginx deve essere in esecuzione in Plesk.
  • È necessario mappare manualmente la porta all’interno di un container in riferimento a una porta nel sistema host (ad esempio, la 32768) (Docker > seleziona un container > Impostazioni > deseleziona l’opzione Mappatura porte automatica).

Dopo aver mappato manualmente la porta all’interno di un container in riferimento a una porta nel tuo sistema (ad esempio, la 32768), puoi impostare nginx come proxy per le richieste provenienti dai domini e indirizzate a tale porta, in modo da consentire ai domini di utilizzare una porta standard su nginx (ad esempio la 80). A questo scopo, aggiungi una regola per nginx nelle impostazioni di dominio, come segue:

Accedi a Siti web e domini > il dominio > Regole proxy > Aggiungi regola e specifica quanto segue:

  • URL. Specifica l’URL del sito web che utilizza un’applicazione in esecuzione in un container. Può trattarsi del sito web principale o di parte di esso.
  • Container. Seleziona l’applicazione in esecuzione come container Docker.
  • Porta. Seleziona una delle mappature specificata nelle impostazioni del container (una porta all’interno di un container mappata in riferimento a una porta nel sistema). Nginx fungerà da proxy per le richieste indirizzate alla porta nel sistema.

Le regole proxy vengono implementate nella configurazione del server web, ad es. nel file del sito web  nginx.conf (in /var/www/vhosts/system/$domain/conf/):

#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

Le regole proxy dovrebbero funzionare correttamente nei server dietro a NAT.

Nota: i container di Docker connessi a un sito web tramite regole proxy non rientrano nel conteggio del consumo di spazio su disco dell’abbonamento. Fa eccezione il caso in cui una directory di un sito web venga montata come un volume in un container di Docker, poiché in tale situazione tutti i file all’interno del container rientrano nel conteggio del consumo di spazio su disco del sito web.