Docker-Container, -Images und -RegistrierungenDocker containers, images, and registries

Mithilfe von Docker erstellen Entwickler Apps und Dienste und packen diese und ihre Abhängigkeiten in ein Containerimage.When using Docker, a developer creates an app or service and packages it and its dependencies into a container image. Ein Image entspricht einer statischen Darstellung der Apps oder Dienste und von deren Konfigurationen und Abhängigkeiten.An image is a static representation of the app or service and its configuration and dependencies.

Für die Ausführung einer App oder eines Diensts wird das Image der App oder des Diensts instanziiert, um einen Container zu erstellen, der auf dem Docker-Host ausgeführt wird.To run the app or service, the app's image is instantiated to create a container, which will be running on the Docker host. Container werden zunächst in einer Entwicklungsumgebung oder auf einem PC getestet.Containers are initially tested in a development environment or PC.

Entwickler sollten Images in einer Registrierung speichern. Diese fungiert als Bibliothek für Images und ist bei der Bereitstellung für Produktionsorchestratoren erforderlich.Developers should store images in a registry, which acts as a library of images and is needed when deploying to production orchestrators. Docker verwaltet eine öffentliche Registrierung über den Docker-Hub. Andere Anbieter stellen Registrierungen für verschiedene Imagesammlungen bereit, einschließlich der Azure Container Registry.Docker maintains a public registry via Docker Hub; other vendors provide registries for different collections of images, including Azure Container Registry. Alternativ können Unternehmen eine private lokale Registrierung für eigene Docker-Images einrichten.Alternatively, enterprises can have a private registry on-premises for their own Docker images.

In Abbildung 2-4 wird dargestellt, wie Images und Registrierungen in Docker mit anderen Komponenten in Beziehung stehen.Figure 2-4 shows how images and registries in Docker relate to other components. Die Angebote verschiedener Anbieter für Registrierungen werden ebenfalls dargestellt.It also shows the multiple registry offerings from vendors.

Abbildung, die die grundlegende Taxonomie in Docker zeigt.

Abbildung 2-4.Figure 2-4. Taxonomie der Docker-Begriffe und -KonzepteTaxonomy of Docker terms and concepts

Die Registrierung funktioniert wie ein Bücherregal, in dem Images gespeichert und für den Abruf zum Erstellen von Containern verfügbar sind, in denen Dienste oder Web-Apps ausgeführt werden.The registry is like a bookshelf where images are stored and available to be pulled for building containers to run services or web apps. Private Docker-Registrierungen gibt es lokal und in der öffentlichen Cloud.There are private Docker registries on-premises and on the public cloud. Docker Hub ist eine öffentliche Registrierung, die von Docker betrieben wird, die Docker Trusted Registry ist eine für Unternehmen geeignete Lösung, und Azure bietet die Azure Container Registry an.Docker Hub is a public registry maintained by Docker, along the Docker Trusted Registry an enterprise-grade solution, Azure offers the Azure Container Registry. AWS, Google und andere verfügen ebenfalls über Containerregistrierungen.AWS, Google and others also have container registries.

Durch das Einfügen von Images in eine Registrierung können Sie statische und unveränderliche Komponenten der Anwendung speichern, einschließlich aller Abhängigkeiten auf Frameworkebene.Putting images in a registry lets you store static and immutable application bits, including all their dependencies at a framework level. Diese Images können dann mit einer Versionsangabe versehen und in mehreren Umgebungen bereitgestellt werden. Dadurch wird eine konsistente Bereitstellungseinheit bereitgestellt.Those images can then be versioned and deployed in multiple environments and therefore provide a consistent deployment unit.

Private Imageregistrierungen, die lokal oder in der Cloud gehostet werden, werden empfohlen, wenn:Private image registries, either hosted on-premises or in the cloud, are recommended when:

  • Ihre Images wegen Vertraulichkeit nicht öffentlich freigegeben werden dürfenYour images must not be shared publicly due to confidentiality.

  • Sie eine minimale Netzwerklatenz zwischen Ihren Images und der ausgewählten Bereitstellungsumgebung erzielen möchtenYou want to have minimum network latency between your images and your chosen deployment environment. Wenn Ihre Produktionsumgebung beispielsweise die Azure-Cloud ist, möchten Sie Ihre Images wahrscheinlich in Azure Container Registry speichern, um eine minimale Netzwerklatenz zu erzielen.For example, if your production environment is Azure cloud, you probably want to store your images in Azure Container Registry so that network latency will be minimal. Ähnliches gilt, wenn Ihre Produktionsumgebung lokal ist: Dann Sie möchten vermutlich sicherstellen, dass ein lokaler Docker Trusted Registry-Dienst innerhalb desselben lokalen Netzwerks verfügbar ist.In a similar way, if your production environment is on-premises, you might want to have an on-premises Docker Trusted Registry available within the same local network.