12 interessante Docker-Projektideen für Anfänger [2022]
Veröffentlicht: 2021-01-07Heute werden Apps nicht mehr so entwickelt und bereitgestellt, wie man es vor DevOps gewohnt war. Seit DevOps in der IT- und Softwarebranche zum Mainstream geworden ist, hat es die betriebliche Infrastruktur radikal verändert. Jetzt arbeiten Entwickler und Betreiber zusammen, um Apps schnell und effizient zu erstellen, zu testen und bereitzustellen. Genau hier passt Docker ins Bild.
Docker ist eine Containerisierungssoftware oder genauer gesagt ein PaaS-Tool, mit dem Sie Apps und ihre Umgebungen in kleinere Teile zerlegen können, die problemlos in jeder Umgebung und auf jedem Computer gespeichert und bereitgestellt werden können. Mit der Containerisierung können mehrere Container (einschließlich Apps, ihrer Systemdateien und Umgebung) reibungslos in einer virtuellen Maschine arbeiten, ohne alle Ressourcen gemeinsam zu nutzen.
Infolgedessen können Sie mehrere Anwendungen in derselben virtuellen Maschine ausführen, wobei jede Anwendung so ausgeführt wird, als ob sie ihr Betriebssystem, ihre CPU, ihren Arbeitsspeicher, ihren Speicher und andere wichtige Ressourcen besäße.
Das Docker-Ökosystem umfasst vier große Projekte, nämlich Moby, Kubernetes und Containerd. Aber das ist noch nicht alles – Docker hat noch viel mehr zu bieten als diese drei Projekte. Jeden Tag arbeitet die Docker -Community aktiv an der Entwicklung erstklassiger Projekte und Tools mit und für Docker, damit Entwickler auf der ganzen Welt Anwendungen erstellen und bereitstellen können, die überall ausgeführt werden können. Wenn Sie DevOps lernen möchten, ist Docker ein wichtiger Abschnitt, den Sie lernen müssen.
Erfahren Sie, wie Sie Anwendungen wie Swiggy, Quora, IMDB und mehr erstellen
In diesem Beitrag stellen wir einige der besten Docker-Projekte vor, die jeder angehende Entwickler kennen sollte!

Inhaltsverzeichnis
Die besten Ideen für Docker-Projekte
1. RancherVM
Jeder, der Docker verwendet, weiß wahrscheinlich, was Rancher ist. Es ist ein Container-as-Service-Anbieter, der eine Vielzahl von einigen der am weitesten verbreiteten Container-Orchestrierungs- und Planungs-Frameworks umfasst – Docker Swarm , Kubernetes und Mesos . RancherVM ist eines der weniger bekannten Projekte von Rancher, mit dem Sie eine VM in einem Docker-Container ausführen können. Es ist mit einer Web-Benutzeroberfläche ausgestattet, um öffentliche Schlüssel, Rechenknoten und VMs zu verwalten und über einen Webbrowser auf VNC-Konsolen zuzugreifen.
Mit RancherVM können Sie VMs erstellen, die in Kubernetes-Pods ausgeführt werden, die auch als VM-Pods bezeichnet werden. Jeder VM-Pod enthält einen Container, auf dem eine VM-Instanz ausgeführt wird. Derzeit unterstützt RancherVM nur KVM-Images. Sie können also jedes KVM-Image als Docker-Image packen, es über eine beliebige Docker-Registrierung (z. B. DockerHub) verteilen und auf RancherVM ausführen.
Darüber hinaus erweitert RancherVM die Kubernetes-API um benutzerdefinierte Ressourcendefinitionen (CRDs). Sie können eine VirtualMachine-CRD-Spezifikation definieren, die angibt, welches Basis-Image, wie viele Rechenressourcen und welche Schlüsselpaare berechtigt sind, eine SSH-Sitzung zu initiieren. Anschließend erstellt ein Kubernetes-Controller VM-Pods gemäß den von Ihnen bereitgestellten Spezifikationen und zeigt diese im VirtualMachine-CRD-Status an.
Mehr wissen: Top 10 spannender DevOps-Projekte für Anfänger [2020]
2. Dockercraft
Im November 2015 veröffentlichte Microsoft Dockercraft vor den Augen der Öffentlichkeit. Es wurde als Open-Source auf GitHub gestartet und wurde explizit entwickelt, um Entwicklern die Verwaltung ihrer Docker-Container in Minecraft zu ermöglichen , einem beliebten Spiel, das Microsoft für 2,5 Milliarden US-Dollar gekauft hat !
Laut GitHub ist Dockercraft ein „einfacher Minecraft-Docker-Client, um Docker-Container zu visualisieren und zu verwalten“ in der 3D-Umgebung von Minecraft. Es ist nicht gerade ein komplizierter Docker-Manager, der in Minecraft implementiert ist, sondern eher eine vereinfachte Art, Schalter in Docker-Containern zu visualisieren und umzulegen.
Denken Sie daran, dass Sie die Vollversion von Minecraft auf Ihrem PC haben müssen, um Dockercraft verwenden zu können. Wenn Sie es bereits haben, können Sie Dockercraft von Github herunterladen . Nachdem Sie die Einrichtung abgeschlossen haben, müssen Sie einen Dockercraft-Container ausführen und einem benutzerdefinierten Minecraft-Server beitreten – Cuberite.
3. Wein
Der größte Nachteil von Docker besteht darin, dass Docker-Apps nicht plattformübergreifend sind, was bedeutet, dass Sie eine Docker-Windows-App nicht nativ unter Linux ausführen können. Um dieses Problem zu lösen, wurde Wine entwickelt . Wine on Docker wurde entwickelt, damit Windows-Apps auf Linux-Betriebssystemen ausgeführt werden können, genau wie eine lokale Anwendung von überall auf der Welt ausgeführt werden würde. Auf Docker ist es als Wine bekannt, während wir es auf GitHub Docker-Wine nennen.
Wine verwendet die Wine-Kompatibilitätsebene , um Windows-Apps unter Linux zu unterstützen. Da Wine mit Dynamic Video - Treibern und VirtualGL mit lokaler und Remote-Unterstützung geliefert wird, sollte es mit sofort einsatzbereiten Nvidia-Karten und Nvidia-Treibern und sogar anderen Karten, die Mesa-Treiber verwenden, gut funktionieren. Sie können Wine so konfigurieren, dass es sich automatisch an die von Ihnen installierten Treiber anpasst, vorausgesetzt, es handelt sich um die neuesten für Ihren Zweig.
4. Docker-Mo
Derzeit gibt es nur eine Handvoll Überwachungsdienste für Docker-Images, beispielsweise Shipyard . Und es ist eine allgemein anerkannte Tatsache, dass Entwickler/Programmierer Tools lieben, die ihnen den Zugriff auf alle wesentlichen Anforderungen innerhalb der Shell ermöglichen. Docker-Mon ist ein solches Konsolen-Docker-Überwachungstool. Docker-mon basiert auf blessed-contrib , einem Shell-zentrierten Dashboard-Framework.

Dieses Projekt ist noch in Arbeit und stützt sich auf die Docker-Statistikfunktion , die noch gestartet werden muss. Um Docker-Mon zu verwenden, benötigen Sie also entweder einen Master-Build oder die kommende v1.5.0 (Sie können den Start für v1.5.0-rc1 hier überprüfen ).
5. Passagier-Docker
Wir alle wissen, dass Phusion Passenger ein Liebling der Rails-Entwickler ist. Das Hauptziel dieses App-Servers ist es, eine geeignete Umgebung zu schaffen, in der Entwickler ihre Anwendungen reibungslos ausführen können. Aus dieser Idee heraus entstand das Passenger-Docker-Projekt. Ziel war es, ein sinnvolles Standard-Basis-Image für Entwickler zu entwickeln, die Docker in ihrer Produktionsumgebung implementieren möchten.
Passenger-Docker ist eine Suite von Docker-Images, die als Basis für Ruby-, Python-, Node.js- und Meteor-Web-App-Images dienen sollen. Unter Beibehaltung des Kernmantras von Phusion Passenger versucht das Passenger-Docker-Projekt, den Prozess der Erstellung von Docker-Images für Web-Apps zu vereinfachen und zu beschleunigen.
6. KubeVirt
KubeVirt ist ein VM-Management-Add-on für Kubernetes. Es wurde entwickelt, um eine gemeinsame Grundlage für den Aufbau von Virtualisierungslösungen auf Kubernetes zu bieten. Im Wesentlichen wurde Kubernetes entwickelt, um Container und nicht andere Arten von Infrastruktur zu verwalten. Sie können jedoch Kubernetes verwenden, um VM-Cluster zu orchestrieren. Genau das macht KubeVirt – es fügt Kubernetes zusätzliche Funktionalitäten hinzu, sodass es VMs nahtlos unterstützen kann.
KubeVirt zielt darauf ab, die Funktionalitäten von Kubernetes zu erweitern, indem zusätzliche Virtualisierungsressourcentypen über die Custom Resource Definitions API von Kubernetes integriert werden . Sie können KubeVirt verwenden, um eine vordefinierte VM zu erstellen, eine VM zu starten, eine VM zu stoppen, eine VM zu löschen und auch eine VM in einem Kubernetes-Cluster zu planen. KubeVirt ist jedoch noch in Arbeit.
Lesen Sie mehr: Kubernetes Networking: Ein vollständiger Leitfaden zum Verständnis des Netzwerkmodells
7. Laufzettel
Docket ist eine benutzerdefinierte Docker-Registrierung, die blitzschnelle Bereitstellungen über BitTorrent ermöglicht. Damit können Sie Docker-Images mit beeindruckender Geschwindigkeit auf einem großen Cluster von Maschinen bereitstellen. Docket wurde in 48 Stunden im Gopher Gala Golang 48-Stunden-Hackathon entworfen und entwickelt! Docket wurde in Golang geschrieben, ist benutzerfreundlich und kann gut mit Ihrer privaten Docker-Registrierung zusammenarbeiten.
Docket besteht aus drei Hauptkomponenten –
- Docket Registry: Es ist ein REST-Dienst, der als Registry fungiert. Es kann Docker-Image-Tarballs vom Client empfangen, Metadaten in einer Datenbank speichern und daraus Torrents erstellen sowie sie säen.
- Docket Client: Es ist die Schnittstelle, mit der der Endbenutzer interagiert. Es ermöglicht Ihnen, verfügbare Images in der Registrierung anzuzeigen, ein Image in die Registrierung zu pushen und ein Image aus der Registrierung zu ziehen (dies löst eine BitTorrent-Bereitstellung aus).
- BitTorrent Tracker: Obwohl Docket über die BYOT-Funktion (bring your tracker) verfügt, empfehlen wir Ihnen, Opentracker zum Verfolgen von BitTorrent zu installieren.
8. Container-Migrationstool (CMT)
Das Gute an Docker-Containern ist, dass sie portabel sind, da sie auf jedem Hosttyp ausgeführt werden können, auf dem Docker installiert ist. Docker fehlt jedoch die integrierte Funktion, mit der Sie laufende Container über ein Netzwerk von einem Cluster in einen anderen verschieben können. Um die Herausforderung noch zu vergrößern, ist Checkpoint & Restore (CR) noch eine relativ neue Funktion, die Containerbenutzern nicht allgemein zur Verfügung steht. CR erfordert ein gewisses Maß an Verständnis für seine Funktionalität, und normalerweise erhalten die meisten Benutzer, die mit der CR-Funktionalität nicht vertraut sind, aufgrund der Unterschiede/Einschränkungen zwischen dem Quell- und dem Zielhost Fehler, während sie CR ausführen.
Das Container Migration Tool oder CMT wurde speziell entwickelt, um dieses Problem der Migration zu bekämpfen. Die Idee hinter der Erstellung von CMT war die Erstellung eines externen Befehlszeilentools, das mit Docker oder runC verwendet werden kann und die Live-Migration von Containern zwischen verschiedenen Hosts erleichtert, indem es vor der Migration Validierungen durchführt und geeignete Zielhosts automatisch erkennt.
9. dockerfile_lint
Linters sind ein entscheidender Bestandteil bei der Entwicklung einer Toolchain von vorne. Sie werden häufig von JavaScript-Entwicklern verwendet und sind besonders praktisch, wenn mehrere Entwickler an einer gemeinsamen Codebasis arbeiten. dockerfile_lint ist ein regelbasierter Linter für Dockerfiles .
Sie können die Dockerfile_lint-Regeln verwenden, um Dateisyntax, willkürliche Semantik und Best-Practice-Attribute zu überprüfen, die vom Schreiber der Regeldatei bestimmt werden. Außerdem können Sie den Linter verwenden, um LABEL-Regeln anhand von Docker-Images zu überprüfen. Die Regeldateien sind in YAML geschrieben . Alle Regeln werden mit regulären Ausdrücken implementiert und können jeweils auf einer Anweisung der Dockerfile ausgeführt werden. Die Regeldatei besteht aus vier Abschnitten –
- Profilabschnitt: Er liefert notwendige Informationen über die Regeldatei, die dem Benutzer helfen, eine geeignete Regeldatei für eine bestimmte Dockerfile auszuwählen.
- Allgemeiner Abschnitt: Enthält allgemeine Syntaxregeln.
- Zeilenregelabschnitt : Er enthält Regeln, die bei einer bestimmten Anweisung in der Dockerfile ausgeführt werden müssen. Es gibt Regeln zum Überprüfen der Syntax jeder Anweisung.
- Erforderlicher Anweisungsabschnitt: Er enthält eine Liste von Anweisungen, die im Dockerfile vorhanden sein müssen, damit es als gültig betrachtet werden kann.
10. Dockermix
Dockermix ist ein Befehlszeilentool zum Entwickeln und Verwalten von Docker-Umgebungen mit mehreren Containern. In diesem Projekt werden die Containersätze im YAML-Format definiert, das die in der Docker-API verfügbaren Optionen emuliert. Das Ziel hinter der Entwicklung von Dockermix war es, Entwicklern das mühelose Starten, Orchestrieren und Bereitstellen komplexer Multi-Node-Umgebungen für Tests und Entwicklung zu ermöglichen.
Das Dockermix-Projekt wurde nun in Maestro umbenannt, wobei seine Entwicklung unter die Toscanini-Organisation verlagert wurde. Um auf den aktuellen Quellcode zuzugreifen, können Sie das Maestro-Projekt auschecken .
11. Docker-Kochbuch
Docker Cookbook enthält alle notwendigen Ressourcen zum Installieren von Docker und zum Erstellen, Verwalten und Ausführen von Docker-Containern. Dieses Docker-Projekt ist nur mit der Docker-Container-Engine verbunden , die von Docker, Inc. vertrieben wird, und befasst sich nicht mit Docker-Ökosystem-Tools oder anderen Technologien wie Cgroups oder AUFS.
Um das Docker Cookbook verwenden zu können, muss Chef v12.15 oder höher auf Ihrem Computer installiert sein. Das Kochbuch bietet Unterstützung für mehrere Plattformen, darunter Amazon Linux, Fedora, CentOS 7, Debian 8/9 und Ubuntu 14.04/16.04. Außerdem können die Upstream-Docker-Paket-Repositorys automatisch eingerichtet werden.

12. Doku
Dokku ist ein Docker-betriebenes Mini-Heroku, die kleinste PaaS-Implementierung, die jemals entwickelt wurde. Mit dieser PaaS-Lösung können Benutzer Anwendungen konfigurieren und in einer Produktionsumgebung auf einem separaten Server bereitstellen. Es verwendet Docker, um Entwicklern beim Erstellen und Verwalten des gesamten Lebenszyklus von Anwendungen zu helfen.
Sie können Dokku auf jedem Rechner installieren und sogar bei günstigen Cloud-Anbietern nutzen. Darüber hinaus können Sie Dokku-Plugins in jeder Sprache schreiben, sie online teilen und die bereits verfügbaren Plugins erweitern.
Lernen Sie Softwareentwicklungskurse online von den besten Universitäten der Welt. Verdienen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.
Einpacken
Dies sind nur einige der vielen, vielen Projekte, die mit Docker als Grundlage entwickelt wurden. Obwohl Sie nicht alle diese Docker-Tools für Ihr nächstes Projekt benötigen, ist es gut zu wissen, dass Sie eine Vielzahl von Optionen haben!
Wenn Sie mehr über Big Data erfahren möchten, schauen Sie sich das Executive PG-Programm in Full-Stack-Softwareentwicklung von upGrad & IIIT-B an, das für Berufstätige konzipiert ist und mehr als 500 Stunden strenge Schulungen, mehr als 9 Projekte und Aufgaben, IIIT, bietet -B Alumni-Status, praktische praktische Abschlussprojekte und Jobunterstützung bei Top-Unternehmen.
