Docker Engine supporta un sistema di plug-in che ti consente di aggiungere funzionalità extra al runtime del contenitore. I plug-in per nuovi driver di archiviazione, stack di rete e sistemi di registrazione sono tutti disponibili gratuitamente.
Le versioni moderne di Docker Engine includono tutto il necessario per gestire i plug-in all'interno della CLI. Ci stiamo concentrando su questo sistema di plugin "gestito" in questa guida. È necessario installare e gestire manualmente i plug-in che utilizzano il sistema di plug-in legacy.
Tutto sui plug-in
I plugin estendono Docker Engine con nuove funzionalità troppo specifiche per essere fornite con l'installazione generale. Normalmente non interagisci direttamente con i plugin. Una volta installato un plug-in, puoi fare riferimento alle risorse che fornisce durante l'esecuzione di comandi Docker esistenti.
Esistono tre tipi principali di plugin:
- Registrazione – Questi plug-in aggiungono nuovi driver di registrazione, consentendoti di archiviare i log in posizioni esterne a Docker Engine e al tuo computer host.
- Rete – I plug-in di rete possono aggiungere il supporto per nuovi tipi di rete e funzionalità correlate.
- Volume – I plug-in di archiviazione aggiungono filesystem e driver di volume a Docker, offrendoti più opzioni per i dati persistenti.
Sono disponibili anche plugin con funzionalità che non rientrano in queste aree principali. I plugin sono creati dai fornitori della comunità; puoi scriverne uno tuo utilizzando l'API dei plug-in pubblici e l'SDK Go.
I plugin sono distribuiti tramite Docker Hub. Puoi trovare i plugin disponibili andando alla pagina Esplora e selezionando la scheda Plugin in alto. Sono attualmente disponibili oltre 600 plugin.
Se scrivi il tuo plug-in, puoi inviarlo a Docker Hub con il docker plugin push
comando. Funziona in modo simile al push di un'immagine nel registro pubblico. Devi eseguire docker plugin create
prima di convertire il manifest e il filesystem del tuo plug-in in un pacchetto pronto per l'invio. Puoi ottenere maggiori informazioni sulla creazione di plug-in nei documenti Docker.
Installazione di un plug-in
I plug-in vengono installati con docker plugin install
comando. Questo accetta il nome di un plug-in Docker Hub come argomento:
docker plugin install store/example/example-plugin:version
I riferimenti ai plug-in sembrano riferimenti alle immagini che iniziano con store/
. Gli stessi principi di codifica si applicano quando si specifica la versione del plug-in da installare. A differenza delle immagini, non puoi omettere la versione per estrarre automaticamente l'latest
tag.
Puoi trovare il numero di versione di un plug-in e copiare un comando di installazione pronto per l'esecuzione facendo clic sul pulsante "Istruzioni per l'installazione" nella sua pagina Docker Hub. I plugin gratuiti ti permetteranno di passare a una nuova schermata con la normale casella di copia e incolla in alto a destra. Esegui il comando nel tuo terminale per avviare l'installazione del plugin.
I plugin di solito richiedono l'accesso ai privilegi dell'host in modo che possano fornire le loro funzionalità. Ad esempio, un plug-in di rete dovrà avere accesso all'host
di Docker rete in modo da poter collegare nuove risorse. Riconosci la richiesta di autorizzazione digitando y
e premendo Invio per completare l'installazione. Puoi saltare il prompt aggiungendo il --grant-all-permissions
segnala alla tua install
comando; questo è l'ideale per installazioni non interattive, ma rischia di concedere autorizzazioni non intenzionali se un plug-in si aggiorna con nuove funzionalità.
I plugin vengono abilitati automaticamente dopo l'installazione. L'abilitazione di un plugin consente l'esecuzione di script di preinstallazione. Usa il --disable
flag per impostare lo stato predefinito di un plug-in disabilitato, lasciandolo inerte fino a quando non verrà attivato manualmente in seguito.
Visualizzazione dei dettagli del plug-in
Una volta installato, il tuo plug-in verrà visualizzato durante l'esecuzione di docker plugin ls
:
docker plugin ls
Informazioni più dettagliate su un singolo plug-in possono essere ottenute da docker inspect
comando. Questo accetta un ID plug-in o un tag e visualizza JSON dettagliato che descrive il manifest del plug-in:
docker inspect eccffc
Installazione offline
Docker CLI non dispone di un modo integrato per installare i plug-in offline. Tuttavia, puoi aggiungere plug-in a un'installazione Docker con air gap installandoli prima su un client di rete, quindi copiando i file del plug-in sul sistema offline.
Troverai i plugin installati all'interno di /var/lib/docker/plugins
directory sul tuo host. Ogni plugin ottiene la propria sottodirectory denominata con il suo ID. Questi ID sono visibili nell'output del docker plugin ls
comando.
Abilitazione e disabilitazione dei plug-in
I plugin possono essere abilitati o disabilitati. Vedrai lo stato corrente nell'ultima colonna di ls
produzione. Un plug-in disabilitato non verrà caricato, quindi si comporterà come se non fosse installato.
Usa l'docker plugin enable
e docker plugin disable
comandi per modificare lo stato di un plugin. Fornisci l'ID di uno dei plugin installati come unico argomento del comando:
docker plugin enable eccffc
Ti potrebbe essere impedito di disabilitare un plug-in se viene utilizzato attivamente dalla configurazione di Docker Engine o da uno dei tuoi contenitori. Aggiunta di -f
flag imporrà la disattivazione del plug-in, ma dovrebbe essere usato con parsimonia poiché rischi di uscire dal contenitore non intenzionale.
I plugin vengono disinstallati con il docker plugin rm
comando. Fornisci l'ID o il nome di un plug-in per rimuoverlo completamente da Docker. rm
ha gli stessi comportamenti di disable
quando si gestiscono plug-in utilizzati attivamente e successivamente rimozioni forzate.
Modifica delle impostazioni del plug-in
Il sistema di plug-in di Docker include un meccanismo integrato per consentire agli autori di plug-in di esporre impostazioni personalizzabili. Come utente, puoi modificare queste impostazioni tramite il docker plugin set
comando:
docker plugin set example-plugin setting-key=new-value
Sostituisci example-plugin
con l'ID o il nome del plug-in di destinazione. Il valore della setting-key
del plug-in l'impostazione verrà aggiornata a new-value
.
Le impostazioni disponibili variano naturalmente da plug-in a plug-in. Dovrebbero essere documentati nella descrizione del plug-in su Docker Hub. La Docker CLI non ha un comando integrato per visualizzare tutte le impostazioni disponibili per un plug-in, ma vengono visualizzate in docker plugin inspect
produzione. Cerca le Settings
campo nella rappresentazione JSON di un plug-in; conterrà oggetti con Name
e Settable
campi per le opzioni che puoi modificare tramite la CLI.
Aggiornamento dei plug-in
I plug-in vengono aggiornati con l'docker plugin update
comando. Come gli altri comandi, accetta un ID plug-in o un tag come argomento.
L'aggiornamento di un plug-in scaricherà e installerà l'ultima versione disponibile su Docker Hub. Se sei già nella versione più recente, il comando reinstallerà la versione corrente. Ti verrà chiesto di concedere al plug-in tutti i nuovi privilegi necessari. Il --grant-all-permissions
flag è accettato per saltare il prompt in ambienti in cui l'input interattivo non è fattibile.
Non c'è modo di aggiornare tutti i plugin sul tuo sistema con un comando. È meglio iscriversi per rilasciare annunci dai fornitori dei plug-in, quindi applicare gli aggiornamenti all'installazione non appena diventano disponibili. Ciò garantirà che i tuoi plug-in rimangano protetti e supportati.
Riepilogo
L'ecosistema dei plugin di Docker ti consente di aggiungere funzionalità aggiuntive a Docker Engine. I plugin risiedono su Docker Hub e possono essere installati dal tuo terminale. L'interfaccia a riga di comando incorpora un programma di aggiornamento dei plug-in, ma funziona solo con un solo plug-in alla volta, non con l'intero catalogo.
Ora che sai come utilizzare e gestire i plug-in, puoi iniziare a esplorare Docker Hub per trovare le opzioni per migliorare il tuo flusso di lavoro. Il plug-in di registrazione elastica trasmette i log dei container Docker a un cluster di stack elastico, vSphere for Docker ti consente di utilizzare lo storage VMWare vSphere per i tuoi volumi persistenti e Weave Net porta la rete crittografata multicast a Docker. Se non vedi quello che ti serve, usa l'API del plug-in per provare a scrivere la tua soluzione che puoi pubblicare nella comunità più ampia tramite l'Hub.