Docker

Hafenarbeiter

Das Docker-Projekt ist ein Open-Source-Projekt zur automatisierten Bereitstellung von Anwendungen, die in Software-Containern organisiert sind. Einerseits können mit Docker unabhängige, völlig autarke und dennoch leistungsfähige Integrationstests durchgeführt werden. In unserem kostenlosen Whitepaper zeigen wir Ihnen, wie Sie mit Docker-Architekturen mehr Skalierbarkeit und Agilität schaffen können. Die Docker-Container unterstützen die Entwicklung und die DevOps-Teams bei der Steigerung der Agilität und Beschleunigung der Anwendungsbereitstellung. Der Docker ist eine innovative Open-Source-Software zur Isolierung von Anwendungen in Containern mittels Betriebssystemvirtualisierung.

Das ist Docker?

Die Bezeichnung "Docker" bezeichnet unterschiedliche Dingen. Hierzu zählen ein Open-Source-Community-Projekt, Werkzeuge aus dem Open-Source-Projekt, Docker, das Unternehmen, das dieses Projekt hauptsächlich fördert, und die von Docker unterstützten Werkzeuge. Der Umstand, dass die Technologie und das Unternehmen den selben Firmennamen haben, kann Verwirrung stiften.

Die IT-Software "Docker" ist eine Containerisierungstechnik, die die Erzeugung und den Einsatz von Linux®-Containern ermöglich. An der Weiterentwicklung dieser Technologie zum Wohle aller Nutzer arbeiten die Open-Source-Docker-Community - kostenlos. Docker Inc. setzt auf die Arbeiten der Docker Gemeinschaft, macht sie sicher und stellt diese Neuerungen der breiten Öffentlichkeit zur Verfügung.

Docker ermöglicht die Behandlung von Behältern als äußerst leichte, modular aufgebaute VM. Mit diesen Behältern können Sie flexibel arbeiten - Sie können sie anlegen, bereitstellen, vervielfältigen und zwischen verschiedenen Arbeitsumgebungen wechseln. Wofür arbeitet Docker? Bei der Docker-Technologie wird der Linux-Kernel und seine Features wie Gruppen und Namespaces genutzt, um selbstständig zu starten.

Dies ist der Sinn von Containern - die Möglichkeit, mehrere Vorgänge und Anwendungen separat auszuführen. Containertools, einschließlich Docker, stellen ein bildbasiertes Bereitstellungsmodell bereit. Dies erleichtert es, eine Applikation oder ein Servicepaket mit all ihren abhängigen Komponenten über mehrere Arbeitsumgebungen hinweg freizugeben. Der Docker ermöglicht auch die automatisierte Auslieferung der Applikation (oder von Prozesskombinationen, die eine Applikation repräsentieren) innerhalb dieser Containerumgebung.

Die auf Linux-Containern basierenden Werkzeuge machen Docker anwenderfreundlich und einmalig und ermöglichen dem Anwender einen beispiellosen Zugang zu Applikationen. Mit ihnen ist eine wesentlich raschere Verfügbarkeit und Steuerung von Varianten sowie deren Verteilung möglich. Entspricht die Docker-Technologie den herkömmlichen Linux-Containern? Nein. Die Docker-Technologie basierte auf der LXC-Technologie, die normalerweise mit "traditionellen" Linux-Containern in Verbindung gebracht wird, aber seitdem hat sie sich von dieser Abhängigkeiten gelöst.

Docker-Technologie ermöglicht nicht nur den Betrieb von Behältern, sondern erleichtert auch das Erstellen und Erstellen von Behältern, das Versenden von Bildern und die Versionsverwaltung. Herkömmliche Linux-Container nutzen ein Init-System, das mehrere Vorgänge managen kann. Docker-Technologie ermöglicht die Aufteilung der Applikationen in die jeweiligen Abläufe und liefert die entsprechenden Werkzeuge.

Das Docker-Konzept für die Containerverwaltung zielt auf die Möglichkeit ab, einen Teil der Applikation zur Reparatur oder zum Upgrade herunterzufahren, ohne die komplette Applikation unnötig herunterzufahren. Neben diesem auf Mikroservices beruhenden Konzept können Sie auf die gleiche Art und Weise wie bei einer serviceorientierten SOA (serviceorientierte Architektur) über mehrere Anwendungen hinweg zusammenarbeiten.

Ein Docker-Bild setzt sich aus einer Serie von Ebenen zusammen. Diese Schichten werden von Docker für den Bau von neuen Containern wiederverwendet, was den Bauprozess erheblich verkürzt. In der Zwischenzeit werden die Bilder ausgetauscht, was die Schnelligkeit, Grösse und Effektivität weiter erhöht. Am besten ist es, wenn man einen Film mit einem bestimmten Wert überlagern kann.

Damit wird ein agiler Ansatz der Entwicklung gefördert und eine durchgängige Einbindung und Versorgung (CI/CD) aus Sicht der Werkzeuge ermöglicht. Dockerbasierte Behälter können den Einsatz auf wenige Augenblicke verkürzen. Indem Sie für jeden Prozeß einen Behälter erstellen, können Sie gleichartige Vorgänge mit neuen Anwendungen ausstatten. Da zum Hinzufügen oder Verschieben eines Controllers kein Betriebssystem gestartet werden muss, sind die Deployment-Zeiten deutlich geringer.

Docker-Technologie ist daher ein körniger, steuerbarer, auf Mikroservices basierender Prozess, der mehr Wert auf Wirtschaftlichkeit legt. Welche Beschränkungen gibt es bei der Nutzung von Docker? Der Docker allein ist ideal für die Bewirtschaftung von Einzelcontainern ausgelegt. Doch wenn man mehr und mehr Containern und containerisierten Anwendungen verwendet, die in mehrere hundert Komponenten aufgeteilt sind, kann die Steuerung und Instrumentierung sehr mühsam werden.

An einem bestimmten Punkt müssen Sie einen Rückschritt machen und Behälter zu Gruppen zusammenfassen, um Dienstleistungen wie Netzwerk, Security, Telemetrie, etc. in all Ihren Behältern anzubieten. Docker bietet nicht die gleiche UNIX-ähnliche Funktionalität wie herkömmliche Linuxcontainer. Das hat auch Auswirkungen auf die Möglichkeit, neben Ihrer Anwendung im Behälter weitere Vorgänge wie cron oder systemlog zu nutzen.

Die Host-Kernel werden in Verbindung mit den Behältern eingesetzt, was diese Sicherheitslöcher auflöst. Auch der Docker Daemon kann Sicherheitsprobleme aufwerfen. Der Docker-Daemon, eine permanente Container-Laufzeitumgebung, wird für die Verwendung und Ausführung von Docker-Containern sehr wahrscheinlich sein. Für den Docker-Daemon sind Root-Rechte erforderlich. Daher muss besonders auf die Zugangsberechtigungen und die Lage der Vorgänge geachtet werden.

Zum Beispiel hat ein örtlicher Dämon eine geringere Angriffsoberfläche als eine, die in einer öffentlichen Umgebung, z.B. einem Web-Server, gespeichert ist.

Mehr zum Thema