12 interessanti idee per progetti Docker per principianti [2022]

Pubblicato: 2021-01-07

Oggi le app non vengono più sviluppate e distribuite come prima di DevOps. Da quando DevOps è diventato una cosa mainstream nel settore IT e del software, ha cambiato radicalmente l'infrastruttura operativa. Ora, sviluppatori e operatori collaborano per creare, testare e distribuire app in modo rapido ed efficiente. È proprio qui che Docker si inserisce nell'immagine.

Docker è un software di containerizzazione o, più precisamente, uno strumento PaaS che consente di frammentare le app e i relativi ambienti in blocchi più piccoli che possono essere archiviati e distribuiti in qualsiasi ambiente e macchina senza problemi. Con la containerizzazione, più contenitori (incluse app, i relativi file di sistema e l'ambiente) funzionano senza problemi in una macchina virtuale senza nemmeno condividere tutte le risorse.

Di conseguenza, puoi eseguire più applicazioni nella stessa macchina virtuale, dove ogni applicazione funzionerà come se possedesse il proprio sistema operativo, CPU, memoria, storage e altre risorse cruciali.

L'ecosistema Docker comprende quattro progetti principali, ovvero Moby, Kubernetes e Containerd. Tuttavia, non è tutto: Docker offre molto di più di questi tre progetti. Ogni giorno la community Docker lavora attivamente allo sviluppo di progetti e strumenti all'avanguardia sia con che per Docker, in modo che gli sviluppatori di tutto il mondo possano creare e distribuire app che possono essere eseguite ovunque. Se vuoi imparare DevOps, Docker è una sezione importante da imparare.

Impara a creare applicazioni come Swiggy, Quora, IMDB e altro

In questo post, evidenzieremo alcuni dei migliori progetti Docker che ogni aspirante sviluppatore dovrebbe conoscere!

Sommario

Le migliori idee per i progetti Docker

1. RancherVM

Chiunque usi Docker probabilmente sa cos'è Rancher. È un fornitore di container come servizio che include una serie di alcuni dei framework di pianificazione e orchestrazione dei container più utilizzati: Docker Swarm , Kubernetes e Mesos . RancherVM è uno dei progetti meno conosciuti di Rancher che consente di eseguire una VM all'interno di un container Docker. È dotato di un'interfaccia utente Web per la gestione di chiavi pubbliche, nodi di calcolo, VM e per accedere alle console VNC da un browser Web.

Con RancherVM, puoi creare VM che vengono eseguite all'interno dei pod Kubernetes, noti anche come VM Pod. Ogni pod VM include un contenitore che esegue un'istanza di macchina virtuale. Al momento, RancherVM supporta solo immagini KVM. Quindi, puoi impacchettare qualsiasi immagine KVM come immagine Docker, distribuirla utilizzando qualsiasi registro Docker (esempio, DockerHub) ed eseguirla su RancherVM.

Inoltre, RancherVM estende l'API Kubernetes con le definizioni delle risorse personalizzate (CRD). È possibile definire una specifica CRD di VirtualMachine specificando quale immagine di base, quante risorse di calcolo e quali coppie di chiavi sono autorizzate ad avviare una sessione SSH. Quindi, un controller Kubernetes creerà pod VM in base alle specifiche fornite dall'utente e visualizzerà le stesse nello stato CRD di VirtualMachine.

Saperne di più: I 10 migliori progetti DevOps per principianti [2020]

2. Imbarcazione portuale

Nel novembre 2015, Microsoft ha rilasciato Dockercraft davanti agli occhi del pubblico. È stato lanciato come open-source su GitHub, esplicitamente progettato per consentire agli sviluppatori di gestire i loro container Docker in Minecraft , un gioco popolare che Microsoft ha acquistato per 2,5 miliardi di dollari !

Secondo GitHub , Dockercraft è un "semplice client Docker di Minecraft, per visualizzare e gestire i container Docker" nell'ambiente 3D di Minecraft. Non è esattamente un complicato gestore Docker implementato in Minecraft, ma piuttosto un modo semplicistico di visualizzare e attivare interruttori nei contenitori Docker.

È importante ricordare che è necessario disporre della versione completa di Minecraft sul PC per utilizzare Dockercraft. Se ce l'hai già, puoi scaricare Dockercraft da Github . Dopo aver completato la configurazione, devi eseguire un container Dockercraft e unirti a un server Minecraft personalizzato: Cuberite.

3. Vino

Il più grande svantaggio di Docker è che le app Dockerizzate non sono multipiattaforma, il che significa che non puoi eseguire in modo nativo un'app Docker Windows su Linux. Per risolvere questo problema è stato creato Wine . Wine on Docker è stato sviluppato per consentire alle app Windows di essere eseguite su Linux OS proprio come un'applicazione locale verrebbe eseguita da qualsiasi parte del mondo. Su Docker è noto come Wine, mentre in GitHub lo chiamiamo Docker-Wine.

Wine usa il livello di compatibilità di Wine per supportare le app Windows su Linux. Poiché Wine viene fornito con driver Dynamic Video e VirtualGL con supporto sia locale che remoto, dovrebbe funzionare bene con schede Nvidia e driver Nvidia pronti all'uso e persino altre schede che utilizzano driver Mesa. Puoi configurare Wine in modo che si adatti automaticamente a qualsiasi driver tu abbia installato, a patto che siano i più recenti per il tuo ramo.

4. Docker-lun

Al momento, ci sono solo una manciata di servizi di monitoraggio per le immagini Docker, ad esempio Shipyard . Ed è un fatto assodato che gli sviluppatori/programmatori amano gli strumenti che consentono loro di accedere a tutti i requisiti essenziali all'interno della shell. Docker-Mon è uno di questi strumenti di monitoraggio Docker della console. Docker-mon si basa su Blessed-contrib , un framework dashboard incentrato sulla shell.

Questo progetto è ancora in lavorazione e si basa sulla funzione delle statistiche docker che deve ancora essere lanciata. Quindi, per utilizzare Docker-Mon, avrai bisogno di una build master o della prossima v1.5.0 (puoi controllare il lancio per v1.5.0-rc1 qui ).

5. Dock passeggeri

Sappiamo tutti che Phusion Passenger è uno dei preferiti dagli sviluppatori di Rails. L'obiettivo principale di questo server di app è creare un ambiente adatto in cui gli sviluppatori possano eseguire le loro applicazioni senza problemi. Questa idea è ciò che ha dato il via alla creazione del progetto Passenger-Docker. L'obiettivo era sviluppare un'immagine di base predefinita ragionevole per gli sviluppatori che desiderano implementare Docker nel proprio ambiente di produzione.

Passenger-Docker è una suite di immagini Docker progettata per fungere da base per le immagini delle app Web Ruby, Python, Node.js e Meteor. Mantenendo il mantra centrale di Phusion Passenger, il progetto Passenger-Docker cerca di semplificare e accelerare il processo di creazione di immagini Docker per le app Web.

6. Kube Virtual

KubeVirt è un componente aggiuntivo di gestione delle macchine virtuali per Kubernetes. È stato sviluppato per offrire un terreno comune per la creazione di soluzioni di virtualizzazione su Kubernetes. In sostanza, Kubernetes è stato creato per gestire i container e non altri tipi di infrastruttura. Tuttavia, puoi usare Kubernetes per orchestrare i cluster di macchine virtuali. Questo è ciò che fa KubeVirt: aggiunge funzionalità extra a Kubernetes in modo che possa supportare senza problemi le VM.

KubeVirt mira ad estendere le funzionalità di Kubernetes incorporando ulteriori tipi di risorse di virtualizzazione tramite l'API delle definizioni delle risorse personalizzate di Kubernetes . Puoi utilizzare KubeVirt per creare una VM predefinita, avviare una VM, arrestare una VM, eliminare una VM e anche pianificare una VM su un cluster Kubernetes. Tuttavia, KubeVirt è ancora un work in progress.

Per saperne di più: Rete Kubernetes: una guida completa per comprendere il modello di rete

7. Documento

Docket è un registro Docker personalizzato che facilita distribuzioni velocissime tramite BitTorrent. Ti consente di distribuire immagini Docker su un grande cluster di macchine a una velocità impressionante. Docket è stato progettato e sviluppato in 48 ore nell'hackathon di 48 ore di Gopher Gala Golang! Scritto in Golang, Docket è facile da usare e può funzionare bene con il tuo registro Docker privato.

Docket è composto da tre componenti principali:

  • Registro di sistema: è un servizio REST che funge da registro. Può ricevere tarball di immagini Docker dal client, archiviare metadati in un database e creare torrent da essi oltre a seminarli.
  • Docket Client: è l'interfaccia con cui interagisce l'utente finale. Ti consente di visualizzare le immagini disponibili nel registro, inviare un'immagine al registro ed estrarre un'immagine dal registro (questo attiva una distribuzione BitTorrent).
  • BitTorrent Tracker: sebbene Docket abbia la funzione BYOT (porta il tuo tracker), ti consigliamo di installare opentracker per monitorare BitTorrent.

8. Strumento di migrazione dei container (CMT)

Un aspetto positivo dei contenitori Docker è che sono portatili, poiché possono essere eseguiti su qualsiasi tipo di host su cui è installato Docker. Tuttavia, Docker non dispone della funzionalità integrata che consente di spostare i contenitori in esecuzione da un cluster all'altro su una rete. Per aumentare la sfida, Checkpoint & Restore (CR) è ancora una funzionalità relativamente nuova che non è genericamente disponibile per gli utenti dei container. CR richiede un livello di comprensione della sua funzionalità e, di solito, la maggior parte degli utenti che non sono esperti con la funzionalità CR riceve errori durante l'esecuzione di CR a causa delle differenze/limitazioni tra l'origine e l'host di destinazione.

Container Migration Tool o CMT è stato sviluppato specificamente per combattere questo problema di migrazione. L'idea alla base della creazione di CMT era quella di creare uno strumento a riga di comando esterno che può essere utilizzato con Docker o runC che facilita la migrazione in tempo reale di container tra host diversi eseguendo convalide pre-migrazione e rilevando automaticamente gli host di destinazione adatti.

9. dockerfile_lint

I linter sono una componente cruciale nello sviluppo di una toolchain dal fronte. Sono ampiamente utilizzati dagli sviluppatori JavaScript e sono particolarmente utili quando numerosi sviluppatori lavorano su una base di codice condivisa. dockerfile_lint è un linter basato su regole per Dockerfiles .

È possibile utilizzare le regole dockerfile_lint per controllare la sintassi dei file, la semantica arbitraria e gli attributi delle procedure consigliate determinati dall'autore del file delle regole. Inoltre, puoi utilizzare il linter per controllare le regole LABEL rispetto alle immagini Docker. I file delle regole sono scritti in YAML . Tutte le regole vengono implementate utilizzando espressioni regolari e possono essere eseguite su un'istruzione del Dockerfile alla volta. Il file delle regole è composto da quattro sezioni:

  • Sezione profilo: fornisce le informazioni necessarie sul file di regole che aiutano l'utente a selezionare un file di regole appropriato per un Dockerfile specifico.
  • Sezione generale: contiene regole di sintassi generali.
  • Sezione delle regole di riga: contiene le regole che devono essere eseguite su una determinata istruzione nel Dockerfile. Ci sono regole per controllare la sintassi di ogni istruzione.
  • Sezione istruzioni richieste: contiene un elenco di istruzioni che devono esistere nel Dockerfile affinché possa essere considerato valido.

10. Dockermix

Dockermix è uno strumento da riga di comando utilizzato per lo sviluppo e la gestione di ambienti Docker multi-container. In questo progetto, i set di contenitori sono definiti nel formato YAML che emula le opzioni disponibili nell'API Docker. L'obiettivo alla base della creazione di Dockermix era quello di consentire agli sviluppatori di avviare, orchestrare e distribuire facilmente ambienti multinodo complessi per il test e lo sviluppo.

Il progetto Dockermix è stato ora rinominato Maestro con il suo sviluppo sotto l'organizzazione Toscanini. Per accedere al codice sorgente attuale, puoi dare un'occhiata al progetto Maestro .

11. Ricettario Docker

Docker Cookbook include tutte le risorse necessarie per l'installazione di Docker e la creazione, la gestione e l'esecuzione di container Docker. Questo progetto Docker è associato solo al motore del contenitore Docker distribuito da Docker, Inc. e non riguarda gli strumenti dell'ecosistema Docker o altre tecnologie come Cgroups o AUFS.

Per utilizzare Docker Cookbook, devi avere Chef v12.15 o successivo installato nella tua macchina. The Cookbook offre supporto per più piattaforme, tra cui Amazon Linux, Fedora, CentOS 7, Debian 8/9 e Ubuntu 14.04/16.04. Inoltre, può configurare automaticamente i repository dei pacchetti Docker a monte.

12. Dokku

Dokku è un mini-Heroku basato su Docker, la più piccola implementazione PaaS mai sviluppata. Questa soluzione PaaS consente agli utenti di configurare e distribuire le applicazioni in un ambiente di produzione su un server separato. Utilizza Docker per aiutare gli sviluppatori a creare e gestire l'intero ciclo di vita delle applicazioni.

Puoi installare Dokku su qualsiasi macchina e persino utilizzarlo su provider cloud economici. Inoltre, puoi scrivere plug-in Dokku in qualsiasi lingua, condividerli online ed estendere i plug-in già disponibili.

Impara i corsi di sviluppo software online dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.

Avvolgendo

Questi sono solo alcuni dei tanti, tanti progetti che sono stati sviluppati con Docker come base. Anche se non hai bisogno di tutti questi strumenti Docker per il tuo prossimo progetto, è bene sapere che hai una moltitudine di opzioni!

Se sei interessato a saperne di più sui big data, dai un'occhiata al programma Executive PG di upGrad e IIIT-B in Full-stack Software Development, progettato per i professionisti che lavorano e offre oltre 500 ore di formazione rigorosa, oltre 9 progetti e incarichi, IIIT -B Status di ex alumni, progetti pratici pratici e assistenza sul lavoro con le migliori aziende.

Prepararsi per una carriera del futuro

Richiedi ora il programma Executive PG in Full Stack Development