Heim > Technologie-Peripheriegeräte > IT Industrie > Die funktionale Tiefe von Docker und Docker komponieren

Die funktionale Tiefe von Docker und Docker komponieren

Lisa Kudrow
Freigeben: 2025-02-08 09:06:11
Original
665 Leute haben es durchsucht

The Functional Depth of Docker and Docker Compose

Multi-Container-Flask-Anwendung mit Docker Compose und Vultr Containerregistrierung

Build Mit

Docker 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:

  1. Bereitstellen einer Vultr -Computerinstanz mit der Docker -Marktanwendung über das Vultr -Kundenportal.

  2. Verwenden Sie SSH, um mit Nicht-Root-Sudo-Benutzern auf den Server sicher zugreifen zu können.

  3. Aktualisieren Sie den Server.

  4. Erstellen Sie ein neues Projektverzeichnis und geben Sie es ein:

    mkdir flask-redis-example
    cd flask-redis-example
    Nach dem Login kopieren
    Nach dem Login kopieren
  5. Erstellen Sie eine neue Datei mit dem Namen app.py:

    nano app.py
    Nach dem Login kopieren
    Nach dem Login kopieren
  6. 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)
    Nach dem Login kopieren
    Nach dem Login kopieren

    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.

  7. Eingehende Verbindungen zum Port 5000 und das Laden der Firewall:

    neu laden:
    sudo ufw allow 5000
    sudo ufw reload
    Nach dem Login kopieren
    Nach dem Login kopieren
  8. requirements.txt Erstellen Sie eine neue Datei mit dem Namen

    :
    nano requirements.txt
    Nach dem Login kopieren
  9. fügen Sie das folgende Paket hinzu:
    <code>flask
    redis</code>
    Nach dem Login kopieren

    Speichern und schließen Sie die Datei.
  10. flask-redis-example Erstellen Sie ein anderes Verzeichnis im Verzeichnis

    und geben Sie es ein:
     mkdir static
     cd static
    Nach dem Login kopieren
  11. styles.css Erstellen Sie eine neue Datei mit dem Namen

    :
     nano styles.css
    Nach dem Login kopieren
  12. 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;
     }
    Nach dem Login kopieren

    Speichern und beenden Sie die Datei.
  13. flask-redis-example Erstellen Sie ein anderes Verzeichnis im Verzeichnis

    und geben Sie es ein:
     mkdir templates
     cd templates
    Nach dem Login kopieren
  14. index.html Erstellen Sie eine neue Datei mit dem Namen

    :
     nano index.html
    Nach dem Login kopieren
  15. 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>
    Nach dem Login kopieren

    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.
  1. Bereiten Sie eine Vultr -Containerregistrierung ein.
  2. flask-redis-example Erstellen Sie ein Docker -Manifest im Verzeichnis

    :
    nano Dockerfile.flask
    Nach dem Login kopieren
  3. 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"]
    Nach dem Login kopieren

    Speichern und beenden Sie die Datei.
  4. Docker -Bild erstellen:
    docker build -t flask-app .
    Nach dem Login kopieren
  5. Melden Sie sich bei Ihrer Vultr -Containerregistrierung an:
    docker login <url> -u <user> -p <password>
    Nach dem Login kopieren

    <url> achten Sie darauf, <user>, <password> und

    zu ersetzen, die im Abschnitt Überblick über Ihre Vultr -Container -Registrierung enthalten sind. <🎜>
  6. Tag Docker Bild:

    mkdir flask-redis-example
    cd flask-redis-example
    Nach dem Login kopieren
    Nach dem Login kopieren
  7. publizieren den Spiegel in die Vultr -Containerregistrierung:

    nano app.py
    Nach dem Login kopieren
    Nach dem Login kopieren

    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.

  8. 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)
    Nach dem Login kopieren
    Nach dem Login kopieren

    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.

  9. Docker -Komponierungsdatei erstellen:

    sudo ufw allow 5000
    sudo ufw reload
    Nach dem Login kopieren
    Nach dem Login kopieren

    Besuchen Sie nach Abschluss des Build -Vorgangs die Flask -Anwendung unter http: // : 5000. Versuchen Sie, die Website mehrmals zu aktualisieren, und beachten Sie, ob die Anzahl der Seitenbesuche zunimmt.

Mehr Nutzung der Vultr -Container -Registrierung

  • Vultr -Containerregistrierung mit Docker
  • Vultr -Containerregister mit Kubernetes
  • bauen vllm Container Bild
  • bauen lama.cpp Container Bild
  • Pytorch -Containerbild bauen

Best Practice

  • docker-compose.yaml Keep
  • Die Dateien sind gut organisiert und gut dokumentiert.
  • Verwenden Sie benannte Volumes, um Daten zu bestehen, anstatt an das Hostverzeichnis zu binden.
  • Verwenden Sie Umgebungsvariablen, um sensible Daten wie Kennwörter und API -Schlüssel zu speichern.
  • docker-compose up Verwenden Sie die integrierten Befehle von Docker Compose wie docker-compose down, docker-compose ps und
  • , um Container zu verwalten.

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!

Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage