12 strumenti open source che migliorano Docker

Blink e potresti perdere alcuni degli sviluppi più interessanti intorno a Docker in questi giorni. Kubernetes potrebbe ottenere più del tuono dei nuovi strumenti, ma Docker continua a offrire un'orchestrazione di container "appena sufficiente" per la maggior parte dei progetti di sviluppo e delle implementazioni.

Inoltre Docker ha il suo ricco ecosistema di strumenti di terze parti che estendono Docker, lo ravvivano o lo rendono meno perspicace. Ecco 12 creazioni open source che ottengono una spinta da Docker o danno una spinta a Docker, sfruttando Docker per casi d'uso specifici o rendendo Docker più facile da lavorare.

Tuffo

Le immagini Docker sono come panini, con molti strati. Forse è meglio dire che sono come panini in involucri opachi: non sempre sai quanti strati ci sono o cosa contengono. Dive ti consente di esplorare visivamente i livelli in un'immagine Docker tramite un'interfaccia utente interattiva. Puoi vedere quali ingredienti sono presenti in ogni strato e anche determinare come ogni strato ha cambiato lo strato sottostante (cosa è stato aggiunto o rimosso). Puoi anche analizzare un'immagine per rilevare lo spazio sprecato o duplicato e persino trasferire i risultati alla tua pipeline di integrazione continua, in modo che un'immagine con troppo spazio sprecato fallisca il processo di creazione.

Docker Compose UI

Docker Compose UI è un progetto con licenza MIT che fornisce a Docker Compose un'interfaccia utente basata sul Web, creata utilizzando il framework Flask di Python. I contenitori possono essere eseguiti localmente o su un host remoto e l'interfaccia utente Docker Compose stessa è disponibile in un contenitore Docker per comodità. Tieni presente che alcuni dei progetti demo forniti con l'interfaccia utente di Docker Compose non possono essere scalati "a causa di conflitti di porte pubblicate".

Dockly

La maggior parte del lavoro Docker viene eseguita tramite una CLI o un'interfaccia terminale e la CLI Docker predefinita ha lo stesso aspetto di qualsiasi altro programma CLI. Dockly fornisce un'interfaccia terminale a schermo intero per Docker: un dashboard in modalità testo di tutti i container in esecuzione, una visualizzazione live dei log dei container e delle statistiche di utilizzo e una scheda shell incorporata. 

Polveroso

Un ambiente di sviluppo basato su Docker e con licenza MIT, Dusty ha lo scopo di migliorare l'uso di Docker Compose o Vagrant per la gestione dei container. Gli sviluppatori dietro Dusty affermano, ad esempio, che Dusty ha un modello di specifiche più semplice di Docker Compose e che gestisce l'isolamento basato sulla versione delle dipendenze delle app e gli aggiornamenti dei servizi meglio di Vagrant. Dusty consente inoltre di creare test come parte di una specifica per un ambiente e consente di trasformare comuni procedure in più passaggi in uno script facilmente richiamato.

Elsy

Elsy è descritto come "uno strumento di build supponente, multilingue", utilizzando Docker e Docker Compose. Elsy consente di creare un repository software in modo coerente in tutti gli ambienti e riduce al minimo gli strumenti necessari per eseguire la compilazione, indipendentemente dal linguaggio in uso. Una caratteristica propagandata  blackbox-test, consente di testare qualsiasi contenitore costruito in un modo che riflette il suo effettivo utilizzo di produzione. Ad esempio, qualsiasi servizio che necessita di un database avrà un contenitore di database configurato per esso e Elsy interromperà automaticamente l'ambiente di test in seguito.

Gockerize

Eccone uno per i fan della lingua Go. Gockerize è uno strumento con licenza BSD per creare binari Go statici e impacchettarli in contenitori Go minimi. Creato dalle persone dietro AeroFS, Gockerize include funzionalità come “la possibilità di applicare automaticamente una serie di patch alla libreria standard Golang; qualcosa che, anche se molto raramente necessario, può salvare la vita ”, secondo il post del blog che introduce il progetto. Gockerize non si basa molto sull'esterno: solo Go, Docker 1.5 o versioni successive e la shell Bash.

Habitus

Un altro strumento di compilazione basato su Docker, Habitus utilizza un Dockerfile e un file build.yml per creare build di container a più passaggi che contengono un numero qualsiasi di comandi arbitrari. È possibile fare in modo che ogni passaggio della compilazione si basi su qualche passaggio precedente, per garantire che eventuali complicate dipendenze a più passaggi funzionino correttamente. Habitus supporta anche l'inclusione di segreti in un processo di compilazione e lo fa senza lasciare tracce nell'immagine.

Hyper

Presentato come uno "strumento indipendente dall'hypervisor che consente di eseguire immagini Docker su qualsiasi hypervisor", Hyper utilizza Docker, QEMU e Xen per raggiungere i suoi obiettivi. I creatori dello strumento affermano che Hyper utilizza risorse minime (28 MB), si avvia alla velocità di un container anziché di una VM, offre prestazioni elevate e fornisce isolamento applicato dall'hardware per le applicazioni. Un caso d'uso proposto per Hyper è creare applicazioni multi-tenant basate su Docker.

Kitematic

A volte vuoi solo una GUI. Kitematic ti offre una GUI per la gestione dei contenitori Docker su MacOS, Ubuntu Linux e Windows. Ulteriori vantaggi di Kitematic includono l'esposizione automatica dei dati del volume del contenitore attraverso il file system, la fornitura di una CLI incorporata a Docker e la sincronizzazione automatica del suo stato per far corrispondere le modifiche a Docker (ad esempio, quando aggiungi nuove immagini del contenitore).

Logspout

Il mondo Unix ha una lunga tradizione nella combinazione di piccoli programmi per risolvere grandi problemi. Logspout applica la stessa filosofia alla gestione dei log dai contenitori Docker. Logspout convoglia tutti i log ( stdout e  stderr, principalmente) da tutti i contenitori su un dato host a qualsiasi destinazione tu ritenga migliore. I registri aggregati risultanti possono essere visualizzati in tempo reale semplicemente leggendo un flusso HTTP.

Portainer

Anche uno stack Docker relativamente semplice può avere molte parti mobili: contenitori, immagini, reti, volumi, segreti. Tenere traccia di tutto ciò nella tua testa non è una soluzione. Portainer fornisce un'interfaccia utente Web per gli ambienti Docker, indipendentemente dal fatto che si tratti di singoli host o cluster, fornendo una visualizzazione unica di tutto ciò che stai eseguendo. La gestione e la panoramica di tutti i componenti Docker comuni sono raggiungibili in un paio di clic. Soprattutto, il tutto viene distribuito nella tua infrastruttura Docker esistente come un singolo contenitore.

Whalebrew

Gli utenti di MacOS dovrebbero avere familiarità con Homebrew, il sistema di gestione dei pacchetti ad hoc per MacOS. Whalebrew ti consente di installare le immagini Docker ed eseguirle direttamente dalla riga di comando tramite un alias, come se fossero eseguibili installati localmente. Installare i pacchetti è facile come digitare whalebrew install . I pacchetti curati tramite il repository di Whalebrew funzionano meglio, ma teoricamente qualsiasi immagine Docker che accetta i comandi CLI dovrebbe funzionare.