Bereitstellung von Flask in einem Docker-Container
Erstellen eines Dockerfiles
Um Ihre Flask-Anwendung in einem Docker-Container bereitzustellen, benötigen Sie ein Dockerfile. Ein Dockerfile ist eine Textdatei, die Anweisungen zum Erstellen eines Docker-Images enthält.
Hier ist ein Beispiel-Dockerfile für Ihre Flask-Anwendung:
## Verwenden Sie das offizielle Python-Image als Basis-Image
FROM python:3.9-slim
## Legen Sie das Arbeitsverzeichnis auf /app fest
WORKDIR /app
## Kopieren Sie die requirements-Datei in den Container
COPY requirements.txt .
## Installieren Sie die Python-Abhängigkeiten
RUN pip install --no-cache-dir -r requirements.txt
## Kopieren Sie den Flask-Anwendungskode in den Container
COPY . .
## Exponieren Sie den Port, auf dem die Flask-Anwendung läuft
EXPOSE 5000
## Legen Sie den Befehl zum Starten der Flask-Anwendung fest
CMD ["python", "app.py"]
Dieses Dockerfile führt Folgendes aus:
- Verwendet das offizielle Python 3.9 slim-Image als Basis-Image.
- Legt das Arbeitsverzeichnis auf
/app
fest.
- Kopiert die Datei
requirements.txt
in den Container.
- Installiert die Python-Abhängigkeiten, die in der Datei
requirements.txt
aufgeführt sind.
- Kopiert den Flask-Anwendungskode in den Container.
- Exponiert den Port 5000, der der Standardport für den Flask-Entwicklungsserver ist.
- Legt den Befehl zum Starten der Flask-Anwendung fest.
Erstellen und Ausführen des Docker-Images
Um das Docker-Image zu erstellen, führen Sie den folgenden Befehl im selben Verzeichnis wie Ihr Dockerfile aus:
docker build -t labex-flask-app .
Dies erstellt ein Docker-Image mit dem Namen labex-flask-app
basierend auf den Anweisungen im Dockerfile.
Um den Docker-Container auszuführen, verwenden Sie den folgenden Befehl:
docker run -p 5000:5000 labex-flask-app
Dies startet den Docker-Container und ordnet den Port 5000 auf dem Host dem Port 5000 im Container zu. Dadurch können Sie auf die Flask-Anwendung unter http://localhost:5000/
zugreifen.
Skalieren und Verwalten des Docker-Containers
Sobald Ihre Flask-Anwendung in einem Docker-Container bereitgestellt ist, können Sie die Skalierungs- und Verwaltungsfunktionen von Docker nutzen:
- Skalieren: Sie können Ihre Flask-Anwendung einfach skalieren, indem Sie mehrere Instanzen des Docker-Containers ausführen, entweder manuell oder mithilfe von Container-Orchestrierungstools wie Docker Compose oder Kubernetes.
- Überwachung: Docker bietet integrierte Tools und Integrationen zur Überwachung des Zustands und der Leistung Ihrer Container, wodurch die Verwaltung Ihrer Flask-Anwendung in der Produktion einfacher wird.
- Versionierung und Rollbacks: Der imagebasierte Ansatz von Docker erleichtert die Versionierung Ihrer Flask-Anwendung und das Durchführen von Rollbacks, falls erforderlich, um einen zuverlässigeren und stabileren Bereitstellungsprozess zu gewährleisten.
Durch die Nutzung von Docker stellen Sie sicher, dass Ihre Flask-Anwendung konsistent in verschiedenen Umgebungen bereitgestellt und verwaltet wird, was die Entwicklung, das Testen und den Produktionslebenszyklus vereinfacht.