Multi-Container-Flask-Anwendung mit Docker Compose und Vultr Containerregistrierung
Build MitDocker Compose können Benutzer Multi-Container-Anwendungen mithilfe einer einzelnen Konfigurationsdatei ausführen und definieren. Es vereinfacht den Prozess der Einrichtung und Verwaltung mehrerer Container und erleichtert die Entwicklung, Prüfung und Bereitstellung von Anwendungen. In diesem Artikel werden Sie mit zwei Containern eine Flash-Anwendung erstellen, Docker-Bilder Ihrer Anwendung mithilfe der Vultr Containerregistrierung (VCR) verwalten und mehrere Container mit der Multi-Container-Funktionalität von Docker Compose verwalten.
Erstellung der Stichprobenanwendung
In den folgenden Schritten wird eine Beispielanwendung erstellt:
Bereitstellen einer Vultr -Computerinstanz mit der Docker -Marktanwendung über das Vultr -Kundenportal.
Verwenden Sie SSH, um mit Nicht-Root-Sudo-Benutzern auf den Server sicher zugreifen zu können.
Aktualisieren Sie den Server.
Erstellen Sie ein neues Projektverzeichnis und geben Sie es ein:
mkdir flask-redis-example cd flask-redis-example
Erstellen Sie eine neue Datei mit dem Namen app.py
:
nano app.py
Fügen Sie den folgenden Code hinzu:
from flask import Flask, render_template import redis app = Flask(__name__) redis_client = redis.Redis(host='redis', port=6379) @app.route('/') def hello(): count = redis_client.incr('hits') return render_template('index.html', count=count) if __name__ == '__main__': app.run(host='0.0.0.0', port=5000)
Speichern und beenden Sie die Datei. Dieser Flaskcode wird mit der Redis -Datenbank verbunden und erhöht den Zähler bei jedem Zugriff auf die Root -URL.
Eingehende Verbindungen zum Port 5000 und das Laden der Firewall:
neu laden:sudo ufw allow 5000 sudo ufw reload
requirements.txt
Erstellen Sie eine neue Datei mit dem Namen
nano requirements.txt
fügen Sie das folgende Paket hinzu:
<code>flask redis</code>
Speichern und schließen Sie die Datei.
flask-redis-example
Erstellen Sie ein anderes Verzeichnis im Verzeichnis
mkdir static cd static
styles.css
Erstellen Sie eine neue Datei mit dem Namen
nano styles.css
Fügen Sie den folgenden Code hinzu:
body { font-family: Arial, sans-serif; text-align: center; background-color: #f4f4f4; margin: 0; padding: 0; } h1 { color: #333; margin-top: 50px; } p { font-size: 18px; color: #666; }
Speichern und beenden Sie die Datei.
flask-redis-example
Erstellen Sie ein anderes Verzeichnis im Verzeichnis
mkdir templates cd templates
index.html
Erstellen Sie eine neue Datei mit dem Namen
nano index.html
Fügen Sie den folgenden Code hinzu:
<!DOCTYPE html> <html> <head> <title>Flask App</title> <link rel="stylesheet" href="{{ url_for('static', filename='styles.css') }}"> </head> <body> <h1>Hello, World!</h1> <p>I have been seen {{ count }} times.</p> </body> </html>
Speichern und beenden Sie die Datei.
Verwenden der Vultr -Container -Registrierung
In diesem Abschnitt erstellen Sie eine Vultr -Containerregistrierung, laden Ihr Docker -Image in die Registrierung hoch und richten Sie eine Docker -Komponierungsdatei ein, um die Dienste der Flask- und Redis -Datenbanken einzurichten.
Bereiten Sie eine Vultr -Containerregistrierung ein.
flask-redis-example
Erstellen Sie ein Docker -Manifest im Verzeichnis
nano Dockerfile.flask
Fügen Sie die folgende Konfiguration hinzu:
FROM python:3.9-slim WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY app.py . COPY static/ ./static/ COPY templates/ ./templates/ EXPOSE 5000 CMD ["python", "app.py"]
Speichern und beenden Sie die Datei.
Docker -Bild erstellen:
docker build -t flask-app .
Melden Sie sich bei Ihrer Vultr -Containerregistrierung an:
docker login <url> -u <user> -p <password>
<url>
achten Sie darauf, <user>
, <password>
und
Tag Docker Bild:
mkdir flask-redis-example cd flask-redis-example
publizieren den Spiegel in die Vultr -Containerregistrierung:
nano app.py
Stellen Sie nach dem Drücken des Docker -Bildes sicher, dass das Bild im Abschnitt "Repository" des Vultr -Container -Registrals auf dem Vultr -Dashboard vorhanden ist.
Erstellen Sie eine neue Datei mit dem Namen docker-compose.yaml
:
from flask import Flask, render_template import redis app = Flask(__name__) redis_client = redis.Redis(host='redis', port=6379) @app.route('/') def hello(): count = redis_client.incr('hits') return render_template('index.html', count=count) if __name__ == '__main__': app.run(host='0.0.0.0', port=5000)
Speichern und beenden Sie die Datei. Die obige YAML -Konfiguration definiert zwei Dienste web
und redis
. web
Service erstellt die Flask -Anwendung aus dem aktuellen Verzeichnis (.) Und ordnet den Port 5000 des Containers auf den Port 5000 des Hosts ab. Es wird auch angegeben, dass der web
-Dienst vom redis
-Dienst abhängt. redis
Der Dienst verwendet das offizielle Redis -Docker -Bild von Docker Hub.
Docker -Komponierungsdatei erstellen:
sudo ufw allow 5000 sudo ufw reload
Besuchen Sie nach Abschluss des Build -Vorgangs die Flask -Anwendung unter http: //
Mehr Nutzung der Vultr -Container -Registrierung
Best Practice
docker-compose.yaml
Keep docker-compose up
Verwenden Sie die integrierten Befehle von Docker Compose wie docker-compose down
, docker-compose ps
und Schlussfolgerung
In diesem Artikel haben Sie eine Flask-Anwendung mit zwei Containern erstellt, die Vultr-Containerregistrierung verwendet, um das Docker-Bild der Anwendung zu verwalten, und die Multi-Container-Funktionalität von Docker komponieren, um mehrere Container zu verwalten.
Dieser Artikel wird von Vultr gesponsert. Vultr ist die weltweit größte private Cloud Computing -Plattform. VOLTER FABETS unter Entwicklern hat mehr als 1,5 Millionen Kunden in 185 Ländern flexible und skalierbare globale Cloud -Computing-, Cloud -GPU-, Bare -Metal- und Cloud -Speicherlösungen zur Verfügung gestellt. Erfahren Sie mehr über Vultr
Das obige ist der detaillierte Inhalt vonDie funktionale Tiefe von Docker und Docker komponieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!