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

Die funktionale Tiefe von Docker und Docker komponieren

Lisa Kudrow
Lisa KudrowOriginal
2025-02-08 09:06:11727Durchsuche

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:

    <code class="language-bash">mkdir flask-redis-example
    cd flask-redis-example</code>
  5. Erstellen Sie eine neue Datei mit dem Namen app.py:

    <code class="language-bash">nano app.py</code>
  6. Fügen Sie den folgenden Code hinzu:

    <code class="language-python">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)</code>

    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:
    <code class="language-bash">sudo ufw allow 5000
    sudo ufw reload</code>
  8. requirements.txt Erstellen Sie eine neue Datei mit dem Namen

    :
    <code class="language-bash">nano requirements.txt</code>
  9. fügen Sie das folgende Paket hinzu:
    <code>flask
    redis</code>

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

    und geben Sie es ein:
    <code class="language-bash"> mkdir static
     cd static</code>
  11. styles.css Erstellen Sie eine neue Datei mit dem Namen

    :
    <code class="language-bash"> nano styles.css</code>
  12. Fügen Sie den folgenden Code hinzu:
    <code class="language-css"> 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;
     }</code>

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

    und geben Sie es ein:
    <code class="language-bash"> mkdir templates
     cd templates</code>
  14. index.html Erstellen Sie eine neue Datei mit dem Namen

    :
    <code class="language-bash"> nano index.html</code>
  15. Fügen Sie den folgenden Code hinzu:
    <code class="language-html"> <!DOCTYPE html>
     
     
         <title>Flask App</title>
         <link rel="stylesheet" href="%7B%7B%20url_for('static',%20filename='styles.css')%20%7D%7D">
     
     
         <h1>Hello, World!</h1>
         <p>I have been seen {{ count }} times.</p>
     
     </code>

    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

    :
    <code class="language-bash">nano Dockerfile.flask</code>
  3. Fügen Sie die folgende Konfiguration hinzu:
    <code class="language-dockerfile">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"]</code>

    Speichern und beenden Sie die Datei.
  4. Docker -Bild erstellen:
    <code class="language-bash">docker build -t flask-app .</code>
  5. Melden Sie sich bei Ihrer Vultr -Containerregistrierung an:
    <code class="language-bash">docker login <url> -u <user> -p <password></password></user></url></code>

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

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

    <code class="language-bash">mkdir flask-redis-example
    cd flask-redis-example</code>
  7. publizieren den Spiegel in die Vultr -Containerregistrierung:

    <code class="language-bash">nano app.py</code>

    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:

    <code class="language-python">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)</code>

    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:

    <code class="language-bash">sudo ufw allow 5000
    sudo ufw reload</code>

    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!

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