Freigeben über


Docker-Terminologie

Tipp

Dieser Inhalt ist ein Auszug aus dem eBook .NET Microservices Architecture for Containerized .NET Applications, verfügbar auf .NET Docs oder als kostenlose herunterladbare PDF, die offline gelesen werden kann.

.NET Microservices-Architektur für containerisierte .NET-Anwendungen eBook-Cover-Thumbnail.

In diesem Abschnitt werden Begriffe und Definitionen aufgeführt, mit den Sie vertraut sein sollten, bevor Sie sich mit Docker vertraut machen. Weitere Definitionen finden Sie im umfangreichen Glossar von Docker.

Containerimage: Ein Paket mit allen Abhängigkeiten und Informationen, die zum Erstellen eines Containers erforderlich sind. Ein Image enthält alle Abhängigkeiten (z. B. Frameworks) sowie die Bereitstellungs- und Ausführungskonfiguration, die von einer Containerlaufzeit verwendet werden soll. In der Regel wird ein Image von mehreren Basisimages abgeleitet, die übereinander gestapelt sind, um das Dateisystem des Containers zu bilden. Ein Bild ist unveränderlich, sobald es erstellt wurde.

Dockerfile: Eine Textdatei, die Anweisungen zum Erstellen eines Docker-Images enthält. Es ist wie ein Batchskript, die erste Zeile gibt das Basisimage an, mit dem sie beginnen soll, und folgen Sie dann den Anweisungen, um erforderliche Programme zu installieren, Dateien zu kopieren usw., bis Sie die benötigte Arbeitsumgebung erhalten.

Build: Die Aktion zum Erstellen eines Containerimages basierend auf den Informationen und dem Kontext, die von der Dockerfile bereitgestellt werden, sowie zusätzliche Dateien im Ordner, in dem das Image erstellt wird. Sie können Images mit dem folgenden Docker-Befehl erstellen:

docker build

Container: Eine Instanz eines Docker-Images. Ein Container stellt die Ausführung einer einzelnen Anwendung, eines Prozesses oder eines Diensts dar. Sie besteht aus dem Inhalt eines Docker-Images, einer Ausführungsumgebung und einem Standardsatz von Anweisungen. Beim Skalieren eines Diensts erstellen Sie mehrere Instanzen eines Containers aus demselben Image. Oder ein Batchauftrag kann mehrere Container aus demselben Image erstellen und unterschiedliche Parameter an jede Instanz übergeben.

Volumes: Bieten Sie ein beschreibbares Dateisystem an, das der Container verwenden kann. Da Images schreibgeschützt sind, die meisten Programme aber in das Dateisystem schreiben müssen, fügen Volumes eine beschreibbare Schicht oberhalb des Containerimages hinzu, so dass die Programme Zugriff auf ein beschreibbares Dateisystem haben. Das Programm weiß nicht, dass es auf ein mehrschichtiges Dateisystem zugreift, es ist nur das Dateisystem wie gewohnt. Volumes leben im Hostsystem und werden von Docker verwaltet.

Tag: Eine Marke oder Bezeichnung, die Sie auf Bilder anwenden können, sodass verschiedene Bilder oder Versionen desselben Bilds (abhängig von der Versionsnummer oder der Zielumgebung) identifiziert werden können.

Mehrstufiger Build: Ist eine Funktion, die seit Docker 17.05 oder höher hilft, die Größe der endgültigen Images zu verringern. Beispielsweise kann ein großes Basisimage, das das SDK enthält, zum Kompilieren und Veröffentlichen verwendet werden, und dann kann ein kleines Basisimage nur für die Laufzeit verwendet werden, um die Anwendung zu hosten.

Repository (Repo): Eine Sammlung verwandter Docker-Images, unter Verwendung eines Tags, das die Imageversion angibt. Einige Repositorys enthalten mehrere Varianten eines bestimmten Bilds, z. B. ein Bild mit SDKs (schwerer), ein Bild, das nur Laufzeiten (heller) enthält usw. Diese Varianten können mit Tags gekennzeichnet werden. Ein Repository kann Plattformvarianten enthalten, wie z.B. ein Linux-Image und ein Windows-Image.

Registrierung: Ein Dienst, der Zugriff auf Repositorys ermöglicht. Die Standardregistrierung für die meisten öffentlichen Images ist Docker Hub (im Besitz von Docker als Organisation). Eine Registrierung enthält in der Regel Repositorys aus mehreren Teams. Unternehmen haben häufig private Register, um Bilder zu speichern und zu verwalten, die sie erstellt haben. Azure Container Registry ist ein weiteres Beispiel.

Multi-Arch-Image: Bei multi-architektur (oder multi-platform) ist es ein Docker-Feature, das die Auswahl des entsprechenden Images vereinfacht, entsprechend der Plattform, auf der Docker ausgeführt wird. Wenn beispielsweise eine Dockerfile ein Basisimage VON mcr.microsoft.com/dotnet/sdk:8.0 aus der Registrierung anfordert, erhält sie tatsächlich 8.0-nanoserver-ltsc2022, 8.0-nanoserver-1809 oder 8.0-bullseye-slim, je nach Betriebssystem und Version, in der Docker ausgeführt wird.

Docker Hub: Eine öffentliche Registrierung, um Bilder hochzuladen und damit zu arbeiten. Docker Hub bietet Docker-Imagehosting, öffentliche oder private Registrierungen, Buildtrigger und Web-Hooks sowie Integration in GitHub und Bitbucket.

Azure Container Registry: Eine öffentliche Ressource zum Arbeiten mit Docker-Images und deren Komponenten in Azure. Dies stellt eine Registrierung bereit, die Ihren Bereitstellungen in Azure nahe kommt und Ihnen die Kontrolle über den Zugriff ermöglicht, sodass Sie Ihre Azure Active Directory-Gruppen und -Berechtigungen verwenden können.

Docker Trusted Registry (DTR): Ein Docker-Registrierungsdienst (aus Docker), der lokal installiert werden kann, sodass er innerhalb des Rechenzentrums und Netzwerks der Organisation lebt. Es ist praktisch für private Images, die innerhalb des Unternehmens verwaltet werden sollten. Docker Trusted Registry ist als Teil des Docker Datacenter-Produkts enthalten.

Docker Desktop: Entwicklungstools für Windows und macOS zum lokalen Erstellen, Ausführen und Testen von Containern. Docker Desktop für Windows bietet Entwicklungsumgebungen für Linux- und Windows-Container. Der Linux-Docker-Host unter Windows basiert auf einem virtuellen Hyper-V-Computer . Der Host für Windows-Container basiert direkt auf Windows. Docker Desktop für Mac basiert auf dem Apple Hypervisor Framework und dem xhyve Hypervisor, der einen virtuellen Linux-Hostcomputer unter macOS bereitstellt. Docker Desktop für Windows und für Mac ersetzt Docker Toolbox, die auf Oracle VirtualBox basiert.

Verfassen: Ein Befehlszeilentool und ein YAML-Dateiformat mit Metadaten zum Definieren und Ausführen von Anwendungen mit mehreren Containern. Sie definieren eine einzelne Anwendung basierend auf mehreren Bildern mit einer oder mehreren .yml Dateien, die Werte abhängig von der Umgebung überschreiben können. Nachdem Sie die Definitionen erstellt haben, können Sie die gesamte Multicontaineranwendung mit einem einzigen Befehl (Docker-Compose up) bereitstellen, der einen Container pro Image auf dem Docker-Host erstellt.

Cluster: Eine Sammlung von Docker-Hosts, die als einzelner virtueller Docker-Host verfügbar gemacht werden, sodass die Anwendung auf mehrere Instanzen der Dienste skaliert werden kann, die sich auf mehrere Hosts innerhalb des Clusters verteilen. Docker-Cluster können mit Kubernetes, Azure Service Fabric, Docker Swarm und Mesosphere DC/OS erstellt werden.

Orchestrator: Ein Tool, das die Verwaltung von Clustern und Docker-Hosts vereinfacht. Orchestrators ermöglichen es Ihnen, ihre Bilder, Container und Hosts über eine Befehlszeilenschnittstelle (CLI) oder eine grafische Benutzeroberfläche zu verwalten. Sie können Containernetzwerke, Konfigurationen, Lastenausgleich, Dienstermittlung, hohe Verfügbarkeit, Docker-Hostkonfiguration und vieles mehr verwalten. Ein Orchestrator ist verantwortlich für die Ausführung, Verteilung, Skalierung und Reparatur von Workloads in einer Knotensammlung. Typischerweise sind Orchestratoren-Produkte dieselben, die auch Cluster-Infrastruktur wie Kubernetes und Azure Service Fabric sowie weitere Angebote auf dem Markt bereitstellen.