Zum Hauptinhalt springen

Eine einfache Möglichkeit, eine Dockerfile zu erstellen, um eine Python-Anwendung auszuführen

Docker - offene Plattform zur Automatisierung der Bereitstellung, Bereitstellung und Ausführung von Anwendungen. Es ermöglicht Ihnen, Anwendungen in einen Container zu »verpacken", der auf jedem System ausgeführt werden kann, ohne zusätzliche Abhängigkeiten zu installieren.

Dies wird besonders nützlich, wenn Sie auf Python wenn bestimmte Versionen von Paketen und ihre Abhängigkeiten innerhalb der Entwicklungsumgebung eingehalten werden müssen.

In diesem Artikel werden wir uns ansehen, wie wir erstellen Dockerfile für Python lernen wir auch, die Umgebung zu konfigurieren und den Container zu starten.

Was ist eine Dockerfile und wie erstelle ich eine für Python

Für die effiziente Bereitstellung einer Anwendung auf verschiedenen Umgebungen und Geräten ist häufig eine garantierte Reproduzierbarkeit des Installations- und Konfigurationsprozesses sowie die Isolierung aller Abhängigkeiten erforderlich. Dieser Prozess kann viel Zeit und Arbeit in Anspruch nehmen, insbesondere bei der Entwicklung von Projekten in der Programmiersprache Python.

Es gibt jedoch ein Tool, mit dem Sie all diese Aufgaben vereinfachen können - Dockerfile. Eine Dockerfile ist eine Textdatei, die Anweisungen zum Erstellen eines Docker-Images für eine bestimmte Anwendung oder einen bestimmten Dienst enthält. Es ist eine Art Anleitung, wie man eine Umgebung zusammenstellt, um eine Anwendung in einem Docker-Container auszuführen.

Um eine Dockerfile für ein Projekt in der Programmiersprache Python zu erstellen, können Sie die folgende Abfolge von Schritten verwenden:

  1. Wählen Sie ein Basisabbild aus. Das Basisabbild enthält die minimale Umgebung, die für die Ausführung Ihrer Anwendung erforderlich ist. Sie können beispielsweise ein Python-Image auswählen, das bereits einen installierten Python-Interpreter enthält.
  2. Installieren Sie Abhängigkeiten. Verwenden Sie die RUN-Anweisung, um alle erforderlichen Pakete und Bibliotheken zu installieren, die Ihre Anwendung für die Arbeit benötigt.
  3. Kopieren Sie den Quellcode. Verwenden Sie die COPY-Anweisung, um alle Dateien in Ihrem Projekt in den Docker-Container zu kopieren.
  4. Geben Sie den Startbefehl an. Verwenden Sie eine CMD- oder ENTRYPOINT-Anweisung, um den Befehl anzugeben, der Ihre Anwendung beim Starten des Containers ausführt.

Nachdem Sie eine Dockerfile erstellt haben, können Sie es verwenden, um ein Docker-Image zu erstellen. Das Docker-Image kann ausgeführt werden, und dann wird Ihre Anwendung mit all ihren Abhängigkeiten und Einstellungen innerhalb des Containers ausgeführt.

Mit der Verwendung von Dockerfile zum Erstellen eines Docker-Containers für ein Python-Projekt können Sie die Bereitstellung und Verwaltung der Umgebung Ihrer Anwendung vereinfachen und gleichzeitig die Portabilität und Isolation aller Abhängigkeiten und Einstellungen sicherstellen.

Installieren von Docker

Um mit Docker zu beginnen, müssen Sie die Docker Engine auf Ihrem Betriebssystem installieren. Hier ist eine einfache Anleitung zum Installieren von Docker:

  1. Gehen Sie zur offiziellen Docker-Website unter https://www.docker.com/
  2. Klicken Sie oben auf der Seite auf die Registerkarte "Produkte" und dann auf "Docker Desktop".
  3. Laden Sie die Installationsdatei für Ihr Betriebssystem (Windows oder macOS) herunter und führen Sie sie aus.
  4. Befolgen Sie die Anweisungen des Installationsprogramms, um den Docker-Installationsprozess abzuschließen.

Nachdem Sie die Docker Engine installiert haben, können Sie die Container über die Befehlszeile oder die grafische Benutzeroberfläche (GUI) verwalten.

Um zu überprüfen, ob Docker korrekt installiert ist, öffnen Sie eine Eingabeaufforderung (unter Windows kann es sich um eine Eingabeaufforderung oder PowerShell handeln) und geben Sie den Befehl docker --version ein. Wenn die Installation erfolgreich war, wird die auf Ihrem Computer installierte Version von Docker angezeigt.

Erstellen einer Dockerfile

Um ein Docker-Image für eine Python-Anwendung zu erstellen, müssen Sie eine Dockerfile erstellen. Diese Datei enthält die Anweisungen zum Erstellen und Konfigurieren des Containers.

Am Anfang der Dockerfile müssen Sie das Basisabbild angeben, auf dem der Container basiert. Im Falle von Python ist das Python-Image geeignet:latest oder eine bestimmte Version, z. B. python:3.8.

Ein Beispiel:

Als nächstes geben Sie das Arbeitsverzeichnis innerhalb des Containers an, in dem sich die Anwendung befindet.

Anschließend müssen Sie die Anwendungsdateien in das Arbeitsverzeichnis des Containers kopieren. Dazu wird die COPY-Anweisung verwendet.

Danach müssen Sie die Abhängigkeiten der Anwendung installieren, indem Sie den Ausführungsbefehl des pip-Dienstprogramms angeben.

RUN pip install -r requirements.txt

Als nächstes können Sie den Port angeben, an dem die Anwendung innerhalb des Containers verfügbar sein soll. Für eine Anwendung auf Flask könnte dies beispielsweise Port 5000 sein.

Schließlich müssen Sie den Befehl angeben, der beim Starten des Containers ausgeführt wird. Zum Beispiel wird der Befehl verwendet, um eine Anwendung auf Flask auszuführen:

CMD ["python", "app.py"]

Nachdem Sie die Dockerfile erstellt haben, können Sie das Docker-Image mit dem Befehl erstellen docker build. Um dies zu tun, müssen Sie sich im Verzeichnis mit der Dockerfile befinden und den Befehl ausführen:

docker build -t Abbildname .

Das Docker-Image ist jetzt einsatzbereit und kann mit einem Befehl ausgeführt werden docker run:

docker run -p 5000:5000 Abbildname

Die Python-Webanwendung ist jetzt verfügbar unter http://localhost:5000.

Definieren eines Basisabbilds

Bei der Auswahl eines Basisabbilds für den Python-Container ist es wichtig, die Anforderungen und Abhängigkeiten Ihrer Anwendung zu berücksichtigen. Wenn Ihre Anwendung beispielsweise von einer bestimmten Betriebssystemversion oder einem bestimmten Paket abhängt, können Sie das entsprechende Basisabbild auswählen.

Wenn Ihre Anwendung jedoch keine speziellen Anforderungen hat, wird empfohlen, das offizielle Basisabbild für Python zu verwenden, das von Docker Hub bereitgestellt wird. Dieses Abbild enthält alles, was Sie zum Ausführen von Python-Anwendungen benötigen, und wird regelmäßig von der Community aktualisiert und gepflegt.

Sie können den Befehl verwenden, um das Basisabbild in der Dockerfile zu definieren FROM. Um beispielsweise ein offizielles Python-Basisabbild zu verwenden, können Sie der Dockerfile die folgende Zeile hinzufügen:

Diese Zeile weist Docker an, dass der Container basierend auf dem Python-Basisabbild der Version 3.9 erstellt werden soll. Sie können eine andere Version von Python auswählen, indem Sie "3.9" durch die Version ersetzen, die Sie benötigen.

Nachdem Sie das Basisabbild definiert haben, können Sie der Dockerfile weitere Befehle hinzufügen, um Abhängigkeiten zu installieren, die Umgebung anzupassen und die Python-Anwendung auszuführen.

Installieren und Konfigurieren von Abhängigkeiten

Um ein Docker-Image mit einer Python-Anwendung zu erstellen, müssen Sie alle erforderlichen Abhängigkeiten installieren, damit sie innerhalb des Containers verfügbar sind.

Sie können die Datei requirements zum Installieren von Abhängigkeiten verwenden.ein txt, das eine Liste aller Abhängigkeiten und deren Versionen enthält.

Um die Abhängigkeiten zu installieren, müssen Sie der Dockerfile die folgende Anweisung hinzufügen:

COPY requirements.txt /appRUN pip install --no-cache-dir -r /app/requirements.txt

Die erste Zeile kopiert die requirements-Datei.txt aus dem lokalen Build-Kontext innerhalb des Containers in den Ordner /app.

Die zweite Zeile führt die Installation von Abhängigkeiten mit dem Befehl pip install durch und gibt die requirements-Datei an.txt.

Mit der Option --no-cache-dir können Sie Abhängigkeiten ohne Zwischenspeicherung installieren, was beim Erstellen eines Images nützlich sein kann.

Wenn Ihr Projekt ein anderes Werkzeug zum Verwalten von Abhängigkeiten verwendet, z. B. poetry oder pipenv, müssen Sie die Installationsanweisung entsprechend den Anforderungen dieses Werkzeugs ändern.

Befehle zum Ausführen der Anwendung

Nachdem wir eine Dockerfile für unsere Python-Anwendung erstellt haben, müssen wir die Befehle angeben, die beim Starten des Containers ausgeführt werden sollen.

Die folgenden Befehle werden verwendet, um die Anwendung in einem Docker-Container auszuführen:

  1. COPY : mit diesem Befehl kopieren wir alle benötigten Dateien und Verzeichnisse aus unserer lokalen Umgebung in den Container. Zum Beispiel:
  1. WORKDIR : Wird verwendet, um das Arbeitsverzeichnis des Containers festzulegen, in dem alle nachfolgenden Befehle ausgeführt werden. Zum Beispiel:
  1. RUN : mit diesem Befehl führen wir Befehle innerhalb des Containers aus. Zum Beispiel das Festlegen von Abhängigkeiten mit pip:

RUN pip install -r requirements.txt

  1. EXPOSE : Mit diesem Befehl deklarieren wir den Port, an dem unsere Anwendung innerhalb des Containers abhören wird. Zum Beispiel:
  1. CMD oder ENTRYPOINT : mit diesen Befehlen geben wir den Befehl an, der beim Starten des Containers ausgeführt wird. Zum Beispiel:

CMD ["python", "app.py"]

Nachdem wir diese Befehle zur Dockerfile hinzugefügt haben, können wir unser Image zusammenstellen und den Container mit unserer Anwendung ausführen.

Auf diese Weise definieren wir den Pfad und die Befehle, die zum Ausführen unserer Anwendung in einem Docker-Container verwendet werden.