Heim >Backend-Entwicklung >Python-Tutorial >Docker Hands-on: Lernen Sie Dockerfile, Container und Portweiterleitung mit dem Beispiel-Flask-Projekt

Docker Hands-on: Lernen Sie Dockerfile, Container und Portweiterleitung mit dem Beispiel-Flask-Projekt

Susan Sarandon
Susan SarandonOriginal
2025-01-14 07:36:44385Durchsuche

Dieses Tutorial zeigt das Erstellen und Bereitstellen einer einfachen Flask-Anwendung mit Docker. Wir behandeln das Erstellen einer Docker-Datei, das Erstellen des Images, das Ausführen eines Containers und sogar das Übertragen des Images an Docker Hub. Für diejenigen, die mit den Docker-Grundlagen nicht vertraut sind, schauen Sie sich diesen vorherigen Beitrag an:

Beginnen wir mit einem praktischen Beispiel:

Projekt-Setup:

  1. Erstellen Sie ein Verzeichnis mit dem Namen „flask-app“.
  2. Erstellen Sie in „flask-app“ index.py mit dieser einfachen Flask-Anwendung:
<code class="language-python"># index.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
    return "Hello World!"
if __name__ == "__main__":
    app.run(host="0.0.0.0", port=int("5000"), debug=True)</code>
  1. Erstellen Sie auch in „flask-app“ ein Dockerfile (keine Erweiterung) mit folgendem Inhalt:
<code class="language-dockerfile">FROM python:3.13.1-alpine3.21
WORKDIR /app
COPY . /app
RUN pip install -r requirements.txt
EXPOSE 5000
CMD ["python", "index.py"]</code>
  1. Schließlich erstellen Sie requirements.txt im Verzeichnis „flask-app“:
<code>Flask==2.3.2</code>

Ihre Verzeichnisstruktur sollte nun wie folgt aussehen:

<code>flask-app/
├── Dockerfile
├── index.py
└── requirements.txt</code>

Erstellen und Ausführen des Docker-Images:

  1. Navigieren Sie zum Verzeichnis „flask-app“ in Ihrem Terminal.
  2. Erstellen Sie das Docker-Image mit diesem Befehl:
<code class="language-bash">docker build -t flask-app .</code>
  1. Überprüfen Sie, ob das Image erfolgreich erstellt wurde:
<code class="language-bash">docker images</code>
  1. Führen Sie den Docker-Container aus und ordnen Sie Port 5000 auf Ihrem Host-Computer dem Port 5000 im Container zu:
<code class="language-bash">docker run --name my-flask-app -d -p 5000:5000 flask-app</code>
  1. Überprüfen Sie den laufenden Container:
<code class="language-bash">docker ps -a</code>
  1. Testen Sie die Anwendung, indem Sie in Ihrem Browser auf http://127.0.0.1:5000 zugreifen oder curl:
  2. verwenden
<code class="language-bash">curl http://127.0.0.1:5000</code>
  1. Um den Behälter anzuhalten und zu entfernen:
<code class="language-bash">docker container rm -f my-flask-app</code>
  1. So entfernen Sie das Bild:
<code class="language-bash">docker image rm -f flask-app</code>

Pushing zum Docker Hub:

Bevor Sie zum Docker Hub pushen, erstellen Sie ein Konto, falls Sie noch keines haben. Dann:

  1. Markieren Sie das Bild für Docker Hub (ersetzen Sie omerbsezer durch Ihren Docker Hub-Benutzernamen):
<code class="language-bash">docker tag flask-app omerbsezer/dev-to-flask-app:latest</code>
  1. Bild verschieben:
<code class="language-bash">docker push omerbsezer/dev-to-flask-app:latest</code>

Sie können Ihr Bild dann auf Docker Hub sehen. Ein Screenshot würde hier platziert werden.

Docker Hands-on: Learn Dockerfile, Container, Port Forwarding with Sample Flask Project

Fazit:

Dieses praktische Beispiel zeigt einen vollständigen Workflow zum Containerisieren einer einfachen Python-Anwendung mit Docker. Für weitere Docker-Tutorials, AWS-, Kubernetes-, Linux-, DevOps-, Ansible-, maschinelles Lernen, generative KI und SAAS-Inhalte folgen Sie diesen Links:

Das obige ist der detaillierte Inhalt vonDocker Hands-on: Lernen Sie Dockerfile, Container und Portweiterleitung mit dem Beispiel-Flask-Projekt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn