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

Einführung in Linux-Komprimierungs- und Dekomprimierungsbefehle

Inhaltsverzeichnis Gängige Komprimierungsformate:...

Beispielcode zur Implementierung von Dreiecken und Pfeilen durch CSS-Rahmen

1. CSS-Boxmodell Die Box beinhaltet: Rand, Rahmen...

Webdatenspeicherung: Cookie, UserData, SessionStorage, WebSqlDatabase

Plätzchen Dies ist eine Standardmethode zum Speic...

Detaillierte Erläuterung gängiger Methoden von JavaScript Array

Inhaltsverzeichnis Methoden, die das ursprünglich...

Html+css, um reinen Text und Schaltflächen mit Symbolen zu erreichen

Dieser Artikel fasst die Implementierungsmethoden...

Beispiel für eine geplante MySQL-Datenbanksicherung

Dieser Artikel beschreibt das Beispiel eines gepl...

Ein kurzes Verständnis der relevanten Sperren in MySQL

Dieser Artikel soll Ihnen vor allem dabei helfen,...

Detailliertes Installationstutorial für Zabbix 4.04 (basierend auf CentOS 7.6)

1. Vorbereitung vor der Installation: 1.1 JDK ins...

Was ist ein MIME-TYP? MIME-Typen-Typensammlung

Was ist ein MIME-TYP? 1. Zunächst müssen wir verst...

Gängige Stile von CSS-Animationseffekten

Animation Definieren Sie eine Animation: /*Legen ...