Uso di Docker
Riassunto: Docker è una piattaforma che consente di eseguire applicazioni in container. Permette l’uso di software specifici, 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. Con questa estensione, è possibile eseguire e gestire container basati su immagini di Docker specifiche e utilizzare Docker sia sull’host locale sia su un server remoto personalizzato.
In questa sezione imparerai a creare, configurare e gestire i container di Docker in Plesk. Inoltre, verrà illustrato il metodo per controllare gli host remoti di Docker da Plesk.
Requisiti e limitazioni
Avvertimento: L’estensione Docker scarica immagini dall’Hub di Docker così come sono, senza preconfigurarle in alcun modo. Alcuni container di Docker o software al loro interno sono pensati esclusivamente per l’uso in ambienti fidati e possono richiedere di effettuare ulteriori configurazioni di sicurezza. Prima di avviare queste immagini scaricate all’interno di Plesk, devi migliorare la loro sicurezza. Per ulteriori dettagli, fai riferimento alla documentazione del fornitore del container o del software. Per esempio, vedi la sezione sicurezza nella documentazione Redis.
-
Plesk supporta Docker per i seguenti sistemi operativi: CentOS 7, Red Hat Enterprise Linux 7, Debian 10, Debian 11, Debian 12, Ubuntu 18.04, Ubuntu 20.04, Ubuntu 22.04, Ubuntu 24.04, AlmaLinux 8.x, AlmaLinux 9.x, Rocky Linux 8.x e Virtuozzo 7 con l’Update 1 Hotfix 1 (7.0.1-686) o versioni successive.
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 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 di Hosting Pack, di Power Pack, o di Developer 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.
Prerequisiti
Prima di iniziare a usare Docker, è necessario installare l’estensione Docker sul server Plesk:
- Se sei l’amministratore di Plesk, installa l’estensione dal catalogo di estensioni.
- Altrimenti, contatta il tuo provider di hosting e chiedigli di installare l’estensione.
Una volta installata l’estensione, è tutto pronto per iniziare. Vedrai l’opzione Docker nel pannello di navigazione.
Container
È possibile accedere alle immagini da Docker Hub nel catalogo Esegui container (Docker > Container > Esegui container).
Per accedere al catalogo:
- Se non hai ancora installato un container, in Docker > Container, fai clic su Esegui container.
- Se hai già installato un container, in Docker > Сontainer, fai clic sull’icona più
.
Per visualizzare le immagini disponibili, utilizza la casella di ricerca.
Specifica il nome dell’immagine, l’archivio o entrambi.
È possibile effettuare ricerche nei seguenti archivi:
- 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.
- Docker Hub.
Per ogni applicazione potrebbero essere disponibili più versioni. È possibile eseguire una versione specifica selezionando il tag appropriato, come mostrato di seguito:
Per eseguire un container:
-
Vai a Docker > Container > Esegui container.
-
Utilizza la casella di ricerca per trovare le immagini nel catalogo. Se l’immagine è archiviata localmente, (locale) appare dopo la versione.
-
Per visualizzare la descrizione e la documentazione dell’immagine su Docker Hub, clicca sull’icona «Più informazioni»
. Questo non si applica alle immagini locali.
-
Fai clic sulla card dell’immagine.
- Per eseguire una versione specifica, seleziona la versione dell’immagine che desideri eseguire dal menu a discesa Versione immagine e fai clic su Avanti.
- Per eseguire la versione più recente dell’applicazione selezionata, è sufficiente fare clic su Avanti.
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.
-
Dopo aver modificato le impostazioni, fai clic su Esegui. Il container apparirà nell’elenco dei container nella scheda Сontainer.
Consulta il registro della console per scoprire se il container funziona senza problemi.
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 del container, vai alla scheda Сontainer e clicca sull’icona delle impostazioni accanto al container che vuoi modificare.
Limitazione della memoria
Per impostazione predefinita, l’utilizzo della RAM in un container Docker è illimitato. Per limitare l’utilizzo della RAM, seleziona la casella di controllo Limite di memoria e inserisci il valore limite in megabyte nel campo MB.
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 sul sistema host, deseleziona Mappatura porte automatica e specifica un’altra porta esterna in Mappatura manuale. Se Mappatura manuale non viene visualizzata quando si deseleziona l’opzione, significa che il container non espone porte.
Quando utilizzi la mappatura manuale, Docker si associa per impostazione predefinita solo alla porta specificata nell’interfaccia localhost del sistema host (127.0.0.1). In questo modo, la porta non è accessibile da Internet e l’applicazione all’interno del container è protetta da eventuali attacchi. Per associare Docker a una porta specificata su tutte le interfacce di rete del sistema host, deseleziona Rendi la porta inaccessibile via Internet. L’applicazione nel container diventerà accessibile da Internet e potrà essere raggiunta sulla porta specificata attraverso uno degli indirizzi IP del sistema host.
Avvertimento: Docker presuppone che l’autenticazione venga eseguita dall’applicazione stessa, ma a volte questo non avviene (per esempio, MySQL/MariaDB non consente l’accesso anonimo per impostazione predefinita, mentre Redis sì). Se l’applicazione in un container è accessibile da Internet, potrebbe essere soggetta ad attacchi da parte di utenti malintenzionati.
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 non vengono eliminati quando si arresta o si elimina un container.
Avvertimento: I dati salvati nei volumi Docker non verranno inclusi nel backup. Per evitare perdite di dati, esegui preventivamente il backup dei dati essenziali salvati in un volume con uno strumenbto di backup di terze parti.
Per ulteriori informazioni sui dati nei container, consulta la Documentazione di Docker.
Per aggiungere una mappatura di volume, specificare quanto segue:
- Nel campo Host - il percorso assoluto alla directory sul server che si desidera montare nel container.
- Nel campo Container - il percorso assoluto di una directory all’interno del container.
Per mappare altre directory, fare clic su Aggiungi ancora.
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:
-
Arresta (Stop), avvia (Avvia) o riavvia (Riavvia) un container. In questi casi, il container verrà 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.
-
Fai clic sulla freccia
accanto al container per visualizzare i registri e il consumo delle risorse.
-
Fai clic sull’icona delle impostazioni
accanto al container per modificare le impostazioni del container, ad esempio le variabili di ambiente o la mappatura del volume (Impostazioni).
-
Rinominare un container (Impostazioni > Nome container).
Fai clic sull’icona delle opzioni aggiuntive accanto al container per eseguire una o più delle seguenti operazioni:
- Ricreare un container utilizzando la stessa o un’altra versione dell’immagine (Ricrea).
- Creare un’immagine basata su un container utilizzando impostazioni personalizzate (Salva come immagine).
- Acquisire un’istantanea di un container (Scarica istantanea).
- Rimuovere un container (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:
#. Go to Docker and click the more options icon next to
the container you want to recreate.
#. Click Recreate in the container settings and specify the image
version and whether to use default environment variables.
Utilizzo di Docker remoto
Per impostazione predefinita, Plesk utilizza Docker installato come servizio locale. Tuttavia, è possibile utilizzare uno o più servizi Docker installati esternamente a Plesk. Si noti che è possibile utilizzare un solo servizio alla volta. È possibile visualizzare il server attivo nella scheda Ambienti della pagina delle impostazioni di Docker in Plesk.
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
È possibile stabilire una connessione tra un server Plesk con l’estensione Docker e un nodo remoto con il servizio Docker.
La procedura seguente è applicabile sia a Plesk per Linux che a Plesk per Windows.
Questi passaggi devono essere eseguiti sull’host remoto:
#. Create the /etc/docker/daemon.json
configuration file for Docker
with the following content:
1 2 3 4 5 6 7 8 |
{ "hosts": ["tcp://0.0.0.0:2376", "unix:///var/run/docker.sock"], "tls": true, "tlsverify": true, "tlscacert": "/root/ca.pem", "tlscert": "/root/server-cert.pem", "tlskey": "/root/server-key.pem" } |
#. Prepare .pem
files. You can use the following example. Replace the IP on
line 4 with the IP address of your remote node and run each command:
1 2 3 4 5 6 7 8 9 10 |
openssl genrsa -aes256 -out ca-key.pem 4096 openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem openssl genrsa -out server-key.pem 4096 openssl req -subj "/CN=192.0.2.1" -new -key server-key.pem -out server.csr openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem openssl genrsa -out key.pem 4096 openssl req -subj '/CN=client' -new -key key.pem -out client.csr openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem chmod 0400 ca-key.pem server-key.pem key.pem chmod 0444 ca.pem server-cert.pem cert.pem |
- Esegui i seguenti comandi per modificare il servizio Docker corrente in modo che venga avviato dopo la configurazione dell’host:
1 2 3 4 |
cp /lib/systemd/system/docker.service /etc/systemd/system/ sed -i 's/\ -H\ fd:\/\///g' /etc/systemd/system/docker.service systemctl daemon-reload systemctl restart docker |
- Salva gli output dei seguenti file sul tuo computer locale in modo che il client possa utilizzarli per connettersi in remoto:
1 2 3 |
cat key.pem cat cert.pem cat ca.pem |
Sul server locale, configura l’host remoto Docker:
- Vai a Docker > Ambienti.
- Fai clic su Aggiungi server
e specifica le impostazioni del server remoto con Docker.
- 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.
Per alternare i servizi di Docker:
- Vai a Docker > Ambienti.
- Nella lista dei server, seleziona il server da utilizzare e faiclic su Impostare come attivo.
In alternativa, è possibile impostare il server come attivo durante la modifica delle relative impostazioni.
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:
Vai a Docker > Container, clicca sull’icona delle opzioni aggiuntive accanto al container e clicca su > Salva come immagine. Nel pannello laterale Salva <container name> come immagine, specifica:
- Nome dell’immagine.
- Un tag facoltativo. Qui puoi specificare la versione dell’immagine. Per impostazione predefinita, la versione sarà «più recente».
L’immagine creata appare nella scheda Immagini ed è 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.
- Carichi un’immagine su Docker in Plesk (Carica immagine nella scheda 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.
Per scaricare un’altra versione di un’immagine dal catalogo online, fai clic sull’icona Estrai , scegli la versione che desideri estrarre dal menu a discesa e fai clic su Estrai.
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. Plesk inoltre mostra quante immagini locali sono disponibili per un prodotto.
Per visualizzare immagini locali e rimuovere immagini locali obsolete:
-
Vai su Docker > Immagini.
-
Per trovare un’immagine locale specifica, utilizza la barra di ricerca.
-
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.
-
Seleziona le immagini specifiche che vuoi rimuovere e clicca su Rimuovi.
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 su una porta sul sistema host (ad esempio, 32768)
Per mappare la porta all’interno di un container:
- Vai su Docker > Container e fai clic sull’icona delle impostazioni
accanto al container che vuoi modificare.
- Disattiva Mappatura porte automatica.
- Mappa manualmente la porta all’interno del container a una porta specifica del tuo sistema (ad esempio, 32768). Puoi rendere questa porta inaccessibile da Internet.
You can set up nginx to proxy requests from domains to that port, so domains can use a standard port on nginx (for example, 80). To make this possible, add a rule for nginx in the domain settings.
Per aggiungere una regola per nginx nelle impostazioni del dominio:
Accedi a Siti web e domini > il dominio > Regole proxy Docker > 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.
Distribuzione dei file YAML di Docker Compose
È possibile distribuire file YAML di Docker Compose utilizzando l’editor di testo online, caricando un file dall’archivio locale o utilizzando un file Docker Compose archiviato nella directory Home di un sito web. Sono supportate le operazioni tipiche sugli stack, come up
(inclusi pull
e force-recreate
), stop
e down
. È possibile modificare e aggiornare gli stack dopo la creazione.
Nota: Non è possibile distribuire Dockerfile o altri file richiesti da un’applicazione utilizzando questa sezione.
Per distribuire un file Docker Compose:
-
Vai su Docker > Stack > Aggiungi stack.
-
Inserisci un nome per il progetto e scegli uno dei metodi per distribuire il file docker-compose:
- Editor: Definisci o incolla il contenuto del tuo file Compose.
- Carica: carica un file Compose dall’archiviazione locale.
- Spazio web: seleziona un file Compose archiviato nella directory Home di un dominio. Per Spazio web, scegli il dominio in cui si trova il file. Per File Compose, accedi alla posizione del file Compose.
È possibile dichiarare e creare container personalizzati. Tutti gli artefatti creati durante il processo di creazione verranno inseriti nella directory Home del sito web.
Per maggiori informazioni sul formato file Compose, fai riferimento alla Documentazione Docker.
Distribuzione di container Portainer in Docker
Portainer è un software di gestione dei container che semplifica la distribuzione di container e stack, la visualizzazione dello stato e dei log di un container, la creazione di utenti e team, la protezione degli ambienti e altro ancora.
Per installare Portainer, vai su Docker > Installa Portainer. Al termine dell’installazione, per gestire i container Portainer all’interno di Docker, vai su Docker > Vai a Portainer.
Nota: Portainer è attualmente una funzionalità beta.
Per maggiori informazioni su Portainer, fare riferimento alla Documentazione di Portainer.