12 idei interesante de proiecte Docker pentru începători [2022]

Publicat: 2021-01-07

Astăzi, aplicațiile nu mai sunt dezvoltate și implementate așa cum erau obișnuite înainte de DevOps. De când DevOps a devenit un lucru mainstream în industria IT și software, a schimbat radical infrastructura operațională. Acum, dezvoltatorii și operatorii lucrează împreună pentru a construi, testa și implementa aplicații rapid și eficient. Tocmai acolo se încadrează Docker în imagine.

Docker este un software de containerizare sau, mai precis, un instrument PaaS care vă permite să fragmentați aplicațiile și mediile acestora în bucăți mai mici care pot fi stocate și implementate în orice mediu și mașină într-o manieră fără probleme. Cu containerizarea, mai multe containere (inclusiv aplicațiile, fișierele lor de sistem și mediul) funcționează fără probleme într-o singură mașină virtuală, fără măcar a partaja toate resursele.

Ca rezultat, puteți rula mai multe aplicații în aceeași mașină virtuală, unde fiecare aplicație va funcționa ca și cum ar poseda sistemul de operare, CPU, memorie, stocare și alte resurse cruciale.

Ecosistemul Docker cuprinde patru proiecte majore, și anume Moby, Kubernetes și Containerd. Cu toate acestea, asta nu este tot – Docker are mult mai mult decât aceste trei proiecte. În fiecare zi, comunitatea Docker lucrează activ la dezvoltarea de proiecte și instrumente de cea mai bună calitate atât cu cât și pentru Docker, astfel încât dezvoltatorii din întreaga lume să poată construi și implementa aplicații care pot rula oriunde. Dacă doriți să învățați DevOps, Docker este o secțiune importantă de învățat.

Învață să construiești aplicații precum Swiggy, Quora, IMDB și multe altele

În această postare, vom evidenția unele dintre cele mai bune proiecte Docker pe care ar trebui să le cunoască orice dezvoltator aspirant!

Cuprins

Top idei de proiecte Docker

1. RancherVM

Oricine folosește Docker probabil știe ce este Rancher. Este un furnizor de containere-as-service care include o serie de unele dintre cele mai utilizate cadre de orchestrare și planificare a containerelor – Docker Swarm , Kubernetes și Mesos . RancherVM este unul dintre proiectele mai puțin cunoscute ale lui Rancher, care vă permite să rulați o VM într-un container Docker. Este echipat cu o interfață de utilizare web pentru gestionarea cheilor publice, nodurilor de calcul, VM-urilor și pentru a accesa consolele VNC dintr-un browser web.

Cu RancherVM, puteți construi mașini virtuale care rulează în interiorul podurilor Kubernetes, cunoscute și sub numele de poduri VM. Fiecare pod VM include un container care rulează o instanță de mașină virtuală. În prezent, RancherVM acceptă doar imagini KVM. Deci, puteți împacheta orice imagine KVM ca imagine Docker, o puteți distribui folosind orice registru Docker (de exemplu, DockerHub) și o puteți rula pe RancherVM.

În plus, RancherVM extinde API-ul Kubernetes cu definiții personalizate de resurse (CRD). Puteți defini o specificație VirtualMachine CRD specificând ce imagine de bază, câte resurse de calcul și ce perechi de taste sunt autorizate să inițieze o sesiune SSH. Apoi, un controler Kubernetes va crea poduri VM conform specificațiilor furnizate de dvs. și va afișa același lucru în starea VirtualMachine CRD.

Aflați mai multe: Top 10 proiecte interesante DevOps pentru începători [2020]

2. Dockercraft

În noiembrie 2015, Microsoft a lansat Dockercraft în fața ochiului public. A fost lansat ca o sursă deschisă pe GitHub, conceput în mod explicit pentru a permite dezvoltatorilor să-și gestioneze containerele Docker în Minecraft , un joc popular pe care Microsoft l-a cumpărat pentru 2,5 miliarde de dolari !

Potrivit GitHub , Dockercraft este un „client Minecraft Docker simplu, pentru a vizualiza și gestiona containerele Docker” în mediul 3D al Minecraft. Nu este tocmai un manager Docker complicat implementat în Minecraft, ci mai degrabă o modalitate simplistă de vizualizare și răsturnare a comutatoarelor în containerele Docker.

Este important să rețineți că trebuie să aveți versiunea completă a Minecraft pe computer pentru a utiliza Dockercraft. Dacă îl aveți deja, puteți descărca Dockercraft din Github . După ce ați finalizat configurarea, trebuie să rulați un container Dockercraft și să vă alăturați unui server Minecraft personalizat - Cuberite.

3. Vin

Cel mai mare dezavantaj al Docker este că aplicațiile Dockerizate nu sunt multiplatforme, ceea ce înseamnă că nu puteți rula în mod nativ o aplicație Docker Windows pe Linux. Pentru a rezolva această problemă, a fost creat Wine . Wine on Docker a fost dezvoltat pentru a permite aplicațiilor Windows să ruleze pe sistemul de operare Linux, așa cum ar rula o aplicație locală de oriunde în lume. Pe Docker, este cunoscut sub numele de Wine, în timp ce în GitHub , îl numim Docker-Wine.

Wine folosește stratul de compatibilitate Wine pentru a accepta aplicațiile Windows pe Linux. Deoarece Wine vine cu drivere Dynamic Video și VirtualGL cu suport atât local, cât și de la distanță, ar trebui să funcționeze bine cu plăci Nvidia și drivere Nvidia ieșite din cutie și chiar și alte plăci care folosesc drivere Mesa. Puteți configura Wine să se adapteze automat la orice drivere pe care le-ați instalat, cu condiția ca acestea să fie cele mai recente pentru filiala dvs.

4. Docker-Mon

În prezent, există doar câteva servicii de monitorizare pentru imaginile Docker, de exemplu, Shipyard . Și este un fapt bine stabilit că dezvoltatorii/programatorii iubesc instrumentele care le permit să acceseze toate cerințele esențiale din interiorul shell-ului. Docker-Mon este un astfel de instrument de monitorizare a consolei Docker. Docker-mon se bazează pe blessed-contrib , un cadru de bord centrat pe shell.

Acest proiect este încă în desfășurare și se bazează pe funcția de statistici docker care nu a fost încă lansată. Deci, pentru a utiliza Docker-Mon, veți avea nevoie fie de o versiune master , fie de viitoarea v1.5.0 (puteți verifica lansarea pentru v1.5.0-rc1 aici ).

5. Pasageri-Docker

Știm cu toții că Phusion Passenger este favoritul dezvoltatorilor Rails. Scopul principal al acestui server de aplicații este de a crea un mediu potrivit în care dezvoltatorii își pot rula aplicațiile fără probleme. Această idee este cea care a declanșat crearea proiectului Passenger-Docker. Scopul a fost de a dezvolta o imagine de bază implicită sensibilă pentru dezvoltatorii care doresc să implementeze Docker în mediul lor de producție.

Passenger-Docker este o suită de imagini Docker concepute pentru a servi drept bază pentru imaginile aplicațiilor web Ruby, Python, Node.js și Meteor. Menținând mantra de bază a Phusion Passenger, proiectul Passenger-Docker urmărește să simplifice și să accelereze procesul de realizare a imaginilor Docker pentru aplicațiile web.

6. KubeVirt

KubeVirt este un add-on de gestionare a VM pentru Kubernetes. A fost dezvoltat pentru a oferi un teren comun pentru construirea de soluții de virtualizare pe deasupra Kubernetes. În esență, Kubernetes a fost creat pentru a gestiona containerele și nu alte tipuri de infrastructură. Cu toate acestea, puteți utiliza Kubernetes pentru a orchestra clustere VM. Aceasta este ceea ce face KubeVirt - adaugă funcționalități suplimentare la Kubernetes, astfel încât să poată susține fără probleme VM-urile.

KubeVirt își propune să extindă funcționalitățile Kubernetes prin încorporarea unor tipuri de resurse de virtualizare suplimentare prin API-ul Kubernetes Custom Resource Definitions . Puteți folosi KubeVirt pentru a construi o VM predefinită, a lansa o VM, a opri o VM, a șterge o VM și, de asemenea, a programa o VM pe un cluster Kubernetes. Cu toate acestea, KubeVirt este încă o lucrare în curs.

Citiți mai multe: Kubernetes Networking: A Complete Guide to Understand Network Model

7. Dosar

Docket este un registru Docker personalizat care facilitează implementările fulgerătoare prin BitTorrent. Vă permite să implementați imagini Docker pe un grup mare de mașini la o viteză impresionantă. Docket a fost conceput și dezvoltat în 48 de ore în cadrul hackatonului de 48 de ore Gopher Gala Golang! Scris în Golang, Docket este ușor de utilizat și poate funcționa bine cu registrul dvs. privat Docker.

Docket este alcătuit din trei componente principale -

  • Docket Registry: Este un serviciu REST care funcționează ca un registru. Poate primi tarball-uri de imagini Docker de la client, poate stoca metadate într-o bază de date și poate crea torrente din ele, precum și le poate genera.
  • Docket Client: Este interfața cu care interacționează utilizatorul final. Vă permite să vizualizați imaginile disponibile în registru, să împingeți o imagine în registru și să extrageți o imagine din registru (acest lucru declanșează o implementare BitTorrent).
  • BitTorrent Tracker: Deși Docket are caracteristica BYOT (aduceți trackerul dvs.), vă recomandăm să instalați opentracker pentru urmărirea BitTorrent.

8. Instrument de migrare a containerelor (CMT)

Un lucru bun despre containerele Docker este că sunt portabile, deoarece pot rula pe orice tip de gazdă care are Docker instalat. Cu toate acestea, Docker nu are caracteristica încorporată care vă permite să mutați containerele care rulează dintr-un cluster în altul printr-o rețea. Pentru a completa provocarea, Checkpoint & Restore (CR) este încă o caracteristică relativ nouă, care nu este disponibilă în mod generic pentru utilizatorii de containere. CR necesită un nivel de înțelegere a funcționalității sale și, de obicei, majoritatea utilizatorilor care nu sunt bine versați cu funcționalitatea CR primesc erori în timp ce efectuează CR din cauza diferențelor/limitărilor dintre sursă și gazda țintă.

Container Migration Tool sau CMT a fost dezvoltat special pentru a combate această problemă a migrației. Ideea din spatele creării CMT a fost de a crea un instrument extern de linie de comandă care poate fi utilizat cu Docker sau runC care facilitează migrarea în direct a containerelor între diferite gazde prin efectuarea de validări pre-migrare și descoperirea automată a gazdelor țintă adecvate.

9. dockerfile_lint

Linters sunt o componentă crucială în dezvoltarea unui lanț de instrumente din față. Ele sunt utilizate pe scară largă de dezvoltatorii JavaScript și sunt deosebit de utile atunci când mulți dezvoltatori lucrează pe o bază de cod partajată. dockerfile_lint este un linter bazat pe reguli pentru Dockerfiles .

Puteți utiliza regulile dockerfile_lint pentru a verifica sintaxa fișierului, semantica arbitrară și atributele de cele mai bune practici care sunt determinate de scriitorul fișierului de reguli. De asemenea, puteți utiliza linter pentru a verifica regulile LABEL față de imaginile Docker. Fișierele cu reguli sunt scrise în YAML . Toate regulile sunt implementate folosind expresii regulate și pot rula pe o singură instrucțiune a fișierului Dockerfile la un moment dat. Fișierul cu reguli este format din patru secțiuni -

  • Secțiunea Profil: oferă informațiile necesare despre fișierul cu reguli care ajută utilizatorul să selecteze un fișier cu reguli adecvat pentru un anumit fișier Docker.
  • Secțiunea generală: conține reguli generale de sintaxă.
  • Secțiunea de reguli de linie: conține reguli care trebuie executate pe o anumită instrucțiune din fișierul Docker. Există reguli pentru verificarea sintaxei fiecărei instrucțiuni.
  • Secțiunea de instrucțiuni necesare: conține o listă de instrucțiuni care trebuie să existe în fișierul Docker pentru a putea fi considerat valid.

10. Dockermix

Dockermix este un instrument de linie de comandă utilizat pentru dezvoltarea și gestionarea mediilor Docker cu mai multe containere. În acest proiect, seturile de containere sunt definite în format YAML care emulează opțiunile disponibile în API-ul Docker. Scopul din spatele creării Dockermix a fost de a permite dezvoltatorilor să lanseze, să orchestreze și să implementeze fără efort medii complexe cu mai multe noduri pentru testare și dezvoltare.

Proiectul Dockermix a fost redenumit acum Maestro , dezvoltarea sa fiind mutată sub organizația Toscanini. Pentru a accesa codul sursă curent, puteți consulta proiectul Maestro .

11. Cartea de bucate Docker

Docker Cookbook include toate resursele necesare pentru instalarea Docker și construirea, gestionarea și rularea containerelor Docker. Acest proiect Docker este asociat doar cu motorul de containere Docker care este distribuit de Docker, Inc. și nu abordează instrumentele ecosistemului Docker sau alte tehnologii precum Cgroups sau AUFS.

Pentru a utiliza Docker Cookbook, trebuie să aveți Chef v12.15 sau o versiune ulterioară instalată pe mașină. Cartea de bucate oferă suport pentru mai multe platforme, inclusiv Amazon Linux, Fedora, CentOS 7, Debian 8/9 și Ubuntu 14.04/16.04. De asemenea, poate configura automat depozitele de pachete Docker din amonte.

12. Dokku

Dokku este un mini-Heroku alimentat de Docker, cea mai mică implementare PaaS care a fost dezvoltată vreodată. Această soluție PaaS permite utilizatorilor să configureze și să implementeze aplicații într-un mediu de producție pe un server separat. Utilizează Docker pentru a ajuta dezvoltatorii să construiască și să gestioneze ciclul de viață complet al aplicațiilor.

Puteți instala Dokku pe orice mașină și chiar îl puteți utiliza pe furnizori de cloud ieftini. În plus, puteți scrie pluginuri Dokku în orice limbă, le puteți partaja online și puteți extinde pluginurile deja disponibile.

Învață cursuri de dezvoltare software online de la cele mai bune universități din lume. Câștigă programe Executive PG, programe avansate de certificat sau programe de master pentru a-ți accelera cariera.

Încheierea

Acestea sunt doar câteva dintre numeroasele, multe proiecte care au fost dezvoltate având ca bază Docker. Deși nu aveți nevoie de toate aceste instrumente Docker pentru următorul proiect, este bine să știți că aveți o multitudine de opțiuni!

Dacă sunteți interesat să aflați mai multe despre big data, consultați programul Executive PG de la upGrad și IIIT-B în dezvoltarea de software full-stack, care este conceput pentru profesioniști care lucrează și oferă peste 500 de ore de formare riguroasă, peste 9 proiecte și sarcini, IIIT -B Statut de absolvenți, proiecte practice practice și asistență pentru locuri de muncă cu firme de top.

Pregătiți-vă pentru o carieră a viitorului

Aplicați acum pentru Programul Executive PG în Full Stack Development