Docker-Bereitstellung von Implementierungsschritten für Flask-Anwendungen

Docker-Bereitstellung von Implementierungsschritten für Flask-Anwendungen

1. Zweck

Schreiben Sie lokal eine Flask-Anwendung, packen Sie sie mit Docker, laden Sie sie auf Ihren eigenen Server hoch und schließen Sie die Bereitstellung ab.

Flussdiagramm:

2. Experimentelle Umgebung

Lokal: Windows 10 1909

Server: Alibaba Cloud Centos-System

3. Erforderliche Software

1.Docker-Desktop

2. Pycharm 2020.3.3

4. Schritte

1. Füllen Sie die Flask-Anwendung lokal aus

(1) Erstellen Sie eine neue Flask-Anwendung docker_flask in PyCharm

(2) Installieren Sie die Pakete Gunicorn und Gevent

(3) Erstellen Sie eine neue Datei gunicorn.config.py und geben Sie den folgenden Inhalt ein

workers = 5 # Definieren Sie die Anzahl der Prozesse, die gleichzeitig geöffnet werden, um Anfragen zu verarbeiten, und passen Sie sie entsprechend dem Website-Verkehr an. worker_class = "gevent" # Verwenden Sie die Gevent-Bibliothek, um die asynchrone Verarbeitung von Anfragen zu unterstützen und den Durchsatz zu verbessern. bind = "0.0.0.0:8080" # Hier kann 8080 nach Belieben angepasst werden.

(4) Erstellen Sie eine neue Datei requirements.txt und geben Sie den folgenden Inhalt ein

Flasche
waffenrock
gevent

(5) Erstellen Sie eine Dockerfile-Datei und füllen Sie den folgenden Inhalt aus

VON python:3.7
ARBEITSVERZEICHNIS /usr/src/app
 
KOPIEREN Sie requirements.txt ./
Führen Sie den Befehl pip install -r requirements.txt -i aus. 
 
KOPIEREN . .
 
CMD ["gunicorn", "app:app", "-c", "./gunicorn.conf.py"] #Die erste App ist der von Python gestartete Dateiname, d. h. app.py; die zweite ist der vorab gestartete Anwendungsname im Flask-Projekt

(6) Projektstruktur

2. Erstellen Sie ein Docker-Image

1. Geben Sie das Verzeichnis dieses Projekts ein

2. Erstellen Sie das Image und geben Sie den folgenden Befehl ein

Docker-Build -t „docker_flask“.

Anschließend werden sechs Schritte ausgeführt. Wir müssen uns darüber keine Gedanken machen und können uns einfach die Ergebnisse ansehen.

Hör zu

OK, jetzt ist unser selbst erstelltes Image fertig. Sie können es lokal ausführen und damit experimentieren.

3. Laden Sie das Bild in das Alibaba Cloud Warehouse hoch

(1) Erstellen Sie Ihr eigenes Docker-Repository in der Alibaba Cloud.

(2) Bild hochladen

1. Melden Sie sich beim Alibaba Cloud Docker Registry an und denken Sie daran, Ihren Benutzernamen in Ihren eigenen zu ändern.

Docker-Login --Benutzername = Ihr Alibaba Cloud-Benutzername registry.cn-hangzhou.aliyuncs.com

Das Anmeldekennwort ist Ihr Alibaba Cloud-Anmeldekennwort.

2. Geben Sie die folgenden zwei Befehlszeilen ein, um das Image in die Registry zu übertragen

Docker-Tag [Bild-ID] registry.cn-hangzhou.aliyuncs.com/namespace/warehouse Name: [Bildversionsnummer]
Docker Push Registry.cn-hangzhou.aliyuncs.com/namespace/Warehouse-Name: [Bildversionsnummer]

Dann machen Sie sich keine Sorgen und lassen Sie es einfach zu Ende laufen.

Ich habe es schon einmal hier hochgeladen.

4. Ziehen Sie dieses Image auf den Server und führen Sie es aus (natürlich muss Docker zuerst auf dem Server installiert werden).

Docker Pull Registry.cn-hangzhou.aliyuncs.com/namespace/Warehouse-Name: [Bildversionsnummer]

Meldet euch per SSH beim Server an, gebt den obigen Befehl ein und prüft anschließend, ob er heruntergeladen wird.

4. Führen Sie es aus und prüfen Sie, ob es funktioniert

Hier ordnete ich den Port 8080 des Dockers dem Port 28080 des Servers zu

OK, geben Sie die Server-IP ein: 28080 und prüfen Sie, ob „Hello World!“ angezeigt wird (denken Sie daran, den Port zu öffnen).

Dies ist das Ende dieses Artikels über die Implementierungsschritte der Docker-Bereitstellung einer Flask-Anwendung. Weitere relevante Inhalte zur Docker-Bereitstellung einer Flask-Anwendung finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Analyse von Tabellennamen und übergeordneten Klassen in Bezug auf benutzerdefinierte Modellklassen in Flask- und Django-Frameworks
  • So stellen Sie eine Flask-Anwendung auf einem Server bereit
  • Beispiel für die Bereitstellung eines Flask-Projekts mit uWSGI und Nginx
  • Stellen Sie die Nginx+Flask+Mongo-Anwendung mit Docker bereit
  • CentOS7-Bereitstellung Flask (Apache, mod_wsgi, Python36, venv)
  • Migration und Bereitstellung von Python-Projekten basierend auf Informationen zu Abhängigkeitspaketen in der Flask-Framework-Konfiguration
  • So stellen Sie das Flask-Projekt auf CentOS bereit
  • CentOS 7.0 verwendet Nginx zum Bereitstellen von Flask-Anwendungs-Tutorials
  • Alibaba Cloud-Bereitstellung von Ubuntu 1.4 Flask + WSGI + Nginx Detaillierte Erläuterung
  • Stellen Sie die Flaskblog-Anwendung auf einem DigitalOcean-Server bereit
  • Tutorial zum Bereitstellen von Nginx, FastCGI und Flask Framework unter Mac OS
  • Tutorial zum Bereitstellen des Flask-Frameworks von Python auf Docker
  • So stellen Sie ein Modell mit Flask als Dienst bereit

<<:  Scrollen Sie in Vue nach unten, um weitere Daten zu laden. Detaillierte Erläuterung des Scroll-Falls

>>:  Mysql-String-Abfangen und Abrufen von Daten im angegebenen String

Artikel empfehlen

Ausnahmefehler beim Packen von Webpack-Dateien

Vor dem Verpacken im Webpack müssen wir sicherste...

So bringen Sie Ihren Browser dazu, mit JavaScript zu sprechen

Inhaltsverzeichnis 1. Das einfachste Beispiel 2. ...

So verhindern Sie, dass Website-Inhalte in Suchmaschinen aufgenommen werden

Normalerweise besteht das Ziel beim Erstellen ein...

Bedingte Kommentare zur Bestimmung des Browsers (IE-Reihe)

<!--[if IE 6]> Nur IE6 kann erkennen <![e...

So installieren Sie Tomcat-8.5.39 auf centos7.6

So installieren Sie Tomcat-8.5.39 auf CentOS 7.6....

Detaillierte Erklärung der neuen Array-Methoden in JavaScript es6

Inhaltsverzeichnis 1. fürJedes() 2. arr.filter() ...

12 nützliche Array-Tricks in JavaScript

Inhaltsverzeichnis Array-Deduplizierung 1. from()...

Detaillierte Erklärung des Prinzips und der Verwendung von MySQL-Ansichten

Dieser Artikel veranschaulicht anhand von Beispie...

Frage zu benutzerdefinierten Attributen von HTML-Tags

In der vorherigen Entwicklung haben wir die Stand...

Beispiele für MySQL-Batch-Hinzufügungs- und Speichermethoden

Beim Anmelden am Stresstest sind viele verschiede...