Wie man den docker desktop engine use Befehl zum Wechseln von Container-Typen verwendet

DockerDockerBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie mit dem Befehl docker desktop engine use zwischen Containertypen wechseln. Sie beginnen damit, den Zweck der Docker-Engine zu verstehen und wie Sie den aktuellen Containertyp überprüfen.

Anschließend erfahren Sie, wie Sie zu Windows-Containern (auf Windows-Systemen) wechseln und dann wieder zurück zu Linux-Containern. Dieses Lab bietet praktische Erfahrung im Umgang mit Container-Umgebungen über die Docker-CLI.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/SystemManagementGroup -.-> docker/info("Display System-Wide Information") subgraph Lab Skills docker/run -.-> lab-555142{{"Wie man den docker desktop engine use Befehl zum Wechseln von Container-Typen verwendet"}} docker/pull -.-> lab-555142{{"Wie man den docker desktop engine use Befehl zum Wechseln von Container-Typen verwendet"}} docker/info -.-> lab-555142{{"Wie man den docker desktop engine use Befehl zum Wechseln von Container-Typen verwendet"}} end

Verstehen des Zwecks von docker desktop engine use

In diesem Schritt werden wir den Zweck der Docker-Engine verstehen. Docker ist eine Plattform, die die Automatisierung der Bereitstellung, Skalierung und Verwaltung von Anwendungen mittels Containerisierung ermöglicht. Ein Container ist eine standardisierte Softwareeinheit, die Code und alle seine Abhängigkeiten verpackt, damit die Anwendung schnell und zuverlässig in verschiedenen Rechenumgebungen läuft.

Die Docker-Engine ist die Kernkomponente von Docker. Es handelt sich um eine Client-Server-Anwendung mit diesen Hauptkomponenten:

  • Ein Server, der als langlebiger Prozess (Daemon) läuft (der dockerd-Befehl).
  • Eine REST-API, die Schnittstellen definiert, über die Programme mit dem Daemon kommunizieren und ihm Anweisungen geben können.
  • Ein Command Line Interface (CLI)-Client (der docker-Befehl).

Die CLI nutzt die REST-API, um den Docker-Daemon über Skripte oder direkte CLI-Befehle zu steuern. Viele andere Docker-Anwendungen nutzen die zugrundeliegende API und CLI.

In der LabEx-Umgebung ist die Docker-Engine bereits installiert und läuft. Dies können Sie mit dem Befehl docker info überprüfen. Dieser Befehl zeigt systemweite Informationen zur Docker-Installation an.

docker info

Sie sollten eine ähnliche Ausgabe wie diese sehen, die Details zur Docker-Version, Speichertreiber und anderen Informationen anzeigt.

Client:
 Version:           20.10.21
 API version:       1.41
 Go version:        go1.18.9
 Git commit:        baeda1f
 Built:             Tue Oct 25 18:01:17 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server:
 Engine:
  Version:          20.10.21
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.18.9
  Git commit:       305620d
  Built:            Tue Oct 25 17:59:50 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.10
  GitCommit:        b34a5c8e5367b9d7e345e9371193898cdce23f40
 runc:
  Version:          1.1.4
  GitCommit:        v1.1.4-0-g5fd4c4d
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
 ... (weitere Ausgabe)

Diese Ausgabe bestätigt, dass die Docker-Engine läuft, und liefert Details zu ihrer Konfiguration. Das Verständnis der Docker-Engine ist der erste Schritt im Umgang mit Containern.

Aktuellen Containertyp überprüfen

In diesem Schritt überprüfen wir den aktuell vom Docker-Engine unterstützten Containertyp in der LabEx-Umgebung. Docker kann je nach zugrundeliegendem Betriebssystem verschiedene Containertypen ausführen. Unter Linux läuft Docker primär Linux-Container. Unter Windows ermöglicht Docker Desktop das Wechseln zwischen Linux- und Windows-Containern.

In der LabEx-Umgebung arbeiten Sie auf einer Linux-Virtual Machine. Daher ist der Docker-Engine für die Ausführung von Linux-Containern konfiguriert. Dies können Sie bestätigen, indem Sie die Ausgabe des docker info-Befehls erneut untersuchen. Suchen Sie nach dem Feld OSType.

docker info

In der Ausgabe sollte eine Zeile ähnlich dieser erscheinen:

OSType: linux

Dies zeigt an, dass der Docker-Engine aktuell für Linux-Container konfiguriert ist. Dies ist das Standard- und erwartete Verhalten auf einem Linux-System.

Zur Veranschaulichung führen wir einen einfachen Linux-Container aus. Wir verwenden das hello-world-Image, ein sehr kleines Image, das lediglich eine Nachricht ausgibt und sich beendet. Zuerst müssen wir das Image auf unseren lokalen Rechner herunterladen.

docker pull hello-world

Sie sollten eine Ausgabe sehen, die den Download des Images bestätigt.

Using default tag: latest
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:f5233545e4356188889a389e18b407cd9f61f46056b1e172b338cd91f09e9e4c
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest

Nun führen wir den Container mit dem docker run-Befehl aus.

docker run hello-world

Sie sollten eine ähnliche Ausgabe sehen, die die Nachricht des hello-world-Containers zeigt.

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub
    (assuming it was not already locally available).
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Dies bestätigt, dass Sie in dieser Umgebung erfolgreich Linux-Container ausführen können.

Zu Windows-Containern wechseln (nur Windows)

In diesem Schritt besprechen wir den Wechsel zu Windows-Containern. Bitte beachten Sie, dass dieser Schritt nur relevant ist, wenn Sie Docker Desktop auf einem Windows-Betriebssystem ausführen. Die LabEx-Umgebung ist eine Linux-Virtual Machine, daher kann dieser Wechsel hier nicht tatsächlich durchgeführt werden. Dennoch ist das Verständnis dieses Konzepts wichtig, wenn Sie mit Docker unter Windows arbeiten.

Unter Windows läuft Docker Desktop standardmäßig in einer kleinen Linux-Virtual Machine, die den Docker-Engine hostet und Linux-Container ausführt. Dies liegt daran, dass der Docker-Engine ursprünglich für Linux entwickelt wurde. Windows unterstützt jedoch auch native Windows-Container.

Wenn Sie auf einem Windows-Rechner mit installiertem Docker Desktop wären, würden Sie typischerweise durch Rechtsklick auf das Docker-Symbol im System-Tray und Auswahl von "Switch to Windows containers" zu Windows-Containern wechseln. Diese Aktion würde den Docker-Daemon so konfigurieren, dass er die Windows-Container-Runtime anstelle der Linux-VM verwendet.

Nach dem Wechsel zu Windows-Containern könnten Sie dann Images für Windows pullen und ausführen, wie z.B. mcr.microsoft.com/windows/nanoserver.

Beispielsweise könnten Sie auf einem Windows-Rechner nach dem Wechsel folgendes ausführen:

docker pull mcr.microsoft.com/windows/nanoserver
docker run mcr.microsoft.com/windows/nanoserver cmd /c echo Hello from Windows Container!

Die Ausgabe wäre:

Hello from Windows Container!

Da Sie sich in einer Linux-Umgebung befinden, würde der Versuch, Windows-Container-Images zu pullen oder auszuführen, fehlschlagen. Der Docker-Engine in dieser Linux-VM kann keine Windows-Container ausführen.

Lassen Sie uns dies demonstrieren, indem wir versuchen, ein Windows-Image zu pullen.

docker pull mcr.microsoft.com/windows/nanoserver

Sie werden wahrscheinlich eine Fehlermeldung sehen, die anzeigt, dass das Image nicht gefunden werden kann, da der Docker-Daemon nach einem Linux-Image mit diesem Namen sucht.

Using default tag: latest
Error response from daemon: manifest for mcr.microsoft.com/windows/nanoserver:latest not found: manifest unknown: manifest unknown

Dies bestätigt, dass die aktuelle Umgebung für Linux-Container konfiguriert ist und keine Windows-Container ausführen kann.

Daher gibt es in dieser LabEx-Umgebung keine praktischen Befehle zum Wechseln zu Windows-Containern. Dieser Schritt dient als konzeptionelle Information für Benutzer, die möglicherweise mit Docker unter Windows arbeiten.

Zurück zu Linux-Containern wechseln (nur Windows)

In diesem Schritt besprechen wir den Wechsel zurück zu Linux-Containern. Ähnlich wie im vorherigen Schritt ist dies nur relevant, wenn Sie Docker Desktop auf einem Windows-Betriebssystem verwenden. In der LabEx-Linux-Umgebung verwenden Sie bereits Linux-Container, daher ist keine Aktion zum Zurückwechseln erforderlich.

Auf einem Windows-Rechner, auf dem Sie zuvor zu Windows-Containern gewechselt haben, würden Sie durch Rechtsklick auf das Docker-Symbol im System-Tray und Auswahl von "Switch to Linux containers" zu Linux-Containern zurückwechseln. Diese Aktion würde die Windows-Container-Runtime beenden und die Linux-Virtual Machine neu starten, die den Docker-Engine für Linux-Container hostet.

Nach dem Zurückwechseln zu Linux-Containern auf einem Windows-Rechner könnten Sie wieder Linux-Container-Images pullen und ausführen, wie z.B. das ubuntu-Image.

Beispielsweise könnten Sie auf einem Windows-Rechner nach dem Zurückwechseln folgendes ausführen:

docker pull ubuntu
docker run ubuntu echo Hello from Linux Container!

Die Ausgabe wäre:

Hello from Linux Container!

Da Sie sich in einer Linux-Umgebung befinden, verwenden Sie bereits Linux-Container. Sie können dies erneut bestätigen, indem Sie den OSType in der docker info-Ausgabe überprüfen.

docker info

Wie in Schritt 2 zu sehen, wird die Ausgabe anzeigen:

OSType: linux

Dies bestätigt, dass der Docker-Engine in dieser LabEx-Umgebung für Linux-Container konfiguriert ist und kein Wechsel zurück erforderlich ist.

Daher gibt es in dieser LabEx-Umgebung keine praktischen Befehle zum Zurückwechseln zu Linux-Containern. Dieser Schritt dient, ähnlich wie der vorherige, als konzeptionelle Information für Benutzer, die möglicherweise mit Docker unter Windows arbeiten.

Zusammenfassung

In diesem Lab haben wir zunächst den Zweck der Docker-Engine verstanden, der Kernkomponente der Docker-Plattform für Containerisierung. Wir haben gelernt, dass die Docker-Engine aus einem Daemon-Prozess, einer REST-API und einer Kommandozeilenschnittstelle (CLI) besteht. Wir haben die Docker-Installation und ihren Betriebsstatus mit dem Befehl docker info überprüft, der detaillierte systemweite Informationen über die Docker-Umgebung lieferte.

Nach diesem grundlegenden Verständnis haben wir den aktuell verwendeten Container-Typ der Docker-Engine überprüft. Für Windows-Benutzer führte das Lab dann durch den Prozess des Wechsels des Container-Typs zu Windows-Containern und anschließend zurück zu Linux-Containern, wobei demonstriert wurde, wie verschiedene Container-Umgebungen in Docker Desktop verwaltet werden können.