Maison > Périphériques technologiques > Industrie informatique > La profondeur fonctionnelle de Docker et Docker composent

La profondeur fonctionnelle de Docker et Docker composent

Lisa Kudrow
Libérer: 2025-02-08 09:06:11
original
724 Les gens l'ont consulté

The Functional Depth of Docker and Docker Compose

Créer une application FLASK multi-continents à l'aide du registre des conteneurs Docker Compose et Vultr

Docker Compose permet aux utilisateurs d'exécuter et de définir les applications multi-container à l'aide d'un seul fichier de configuration. Il simplifie le processus de configuration et de gestion de plusieurs conteneurs, ce qui facilite le développement, le test et le déploiement des applications. Cet article vous guidera pour créer une application Flask avec deux conteneurs, gérer les images Docker de votre application à l'aide du registre des conteneurs Vultr (VCR) et gérer plusieurs conteneurs avec la fonctionnalité multi-container de Docker Compose.

Création de l'échantillon d'application

Les étapes suivantes vous guideront pour créer un exemple d'application:

  1. Déployez une instance de calcul Vultr à l'aide de l'application Docker Market via le portail client Vultr.

  2. Utilisez SSH pour accéder solidement au serveur avec des utilisateurs non ROOT sudo.

  3. Mettez à jour le serveur.

  4. Créez un nouveau répertoire de projet et entrez-le:

    mkdir flask-redis-example
    cd flask-redis-example
    Copier après la connexion
    Copier après la connexion
  5. Créez un nouveau fichier nommé app.py:

    nano app.py
    Copier après la connexion
    Copier après la connexion
  6. Ajouter le code suivant:

    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)
    Copier après la connexion
    Copier après la connexion

    Enregistrer et quitter le fichier. Ce code FLASK se connecte à la base de données Redis et incrémente le compteur à chaque fois que l'URL racine est accessible.

  7. Autoriser les connexions entrantes au port 5000 et recharger le pare-feu:

    sudo ufw allow 5000
    sudo ufw reload
    Copier après la connexion
    Copier après la connexion
  8. Créez un nouveau fichier nommé requirements.txt:

    nano requirements.txt
    Copier après la connexion
  9. Ajouter le package suivant:

    <code>flask
    redis</code>
    Copier après la connexion

    Enregistrer et fermer le fichier.

  10. Créez un autre répertoire dans le répertoire flask-redis-example et entrez-le:

     mkdir static
     cd static
    Copier après la connexion
  11. Créez un nouveau fichier nommé styles.css:

     nano styles.css
    Copier après la connexion
  12. Ajouter le code suivant:

     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;
     }
    Copier après la connexion

    Enregistrer et quitter le fichier.

  13. Créez un autre répertoire dans le répertoire flask-redis-example et entrez-le:

     mkdir templates
     cd templates
    Copier après la connexion
  14. Créez un nouveau fichier nommé index.html:

     nano index.html
    Copier après la connexion
  15. Ajouter le code suivant:

     <!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>
    Copier après la connexion

    Enregistrer et quitter le fichier.

Utilisation du registre des conteneurs Vultr

Dans cette section, vous allez créer un registre de conteneurs Vultr, télécharger votre image Docker dans le registre et configurer un fichier Docker Compose pour configurer les services des bases de données FLASK et Redis.

  1. Déployez un registre de conteneurs Vultr.

  2. Créer un manifeste docker dans le répertoire flask-redis-example:

    nano Dockerfile.flask
    Copier après la connexion
  3. Ajouter la configuration suivante:

    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"]
    Copier après la connexion

    Enregistrer et quitter le fichier.

  4. Build Docker Image:

    docker build -t flask-app .
    Copier après la connexion
  5. Connectez-vous à votre registre de conteneurs Vultr:

    docker login <url> -u <user> -p <password>
    Copier après la connexion

    Assurez-vous de remplacer <url>, <user> et <password>, qui sont fournis dans la section Présentation de votre registre de conteneurs Vultr.

  6. Image de docker de balise:

    mkdir flask-redis-example
    cd flask-redis-example
    Copier après la connexion
    Copier après la connexion
  7. Pusing le miroir au registre des conteneurs Vultr:

    nano app.py
    Copier après la connexion
    Copier après la connexion

    Après avoir poussé l'image Docker, vérifiez que l'image existe dans la section "référentiel" du registre des conteneurs Vultr sur le tableau de bord Vultr.

  8. Créez un nouveau fichier nommé 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)
    Copier après la connexion
    Copier après la connexion

    Enregistrer et quitter le fichier. La configuration YAML ci-dessus définit deux services web et redis. Le service web construit l'application FLASK à partir du répertoire actuel (.) Et cartographie le port 5000 du conteneur au port de l'hôte 5000. Il spécifie également que le service web dépend du service redis. redis Le service utilise l'image officielle de Redis Docker de Docker Hub.

  9. Build Docker Compose Fichier:

    sudo ufw allow 5000
    sudo ufw reload
    Copier après la connexion
    Copier après la connexion

    Une fois le processus de construction terminé, visitez l'application FLASK sur http: // : 5000. Essayez de rafraîchir le site Web plusieurs fois et observez si le nombre de visites de pages augmente.

Plus d'utilisation du registre des conteneurs Vultr

  • Registre des conteneurs Vultr avec docker
  • Registre des conteneurs Vultr avec Kubernetes
  • Build Image de conteneur Vllm
  • Build Llama.cpp Image du conteneur
  • Créer une image de conteneur Pytorch

Best Practice

  • Gardez docker-compose.yaml Les fichiers sont bien organisés et bien documentés.
  • Utiliser des volumes nommés pour persister des données au lieu de lier le répertoire hôte.
  • Utiliser des variables d'environnement pour stocker des données sensibles telles que les mots de passe et les clés API.
  • Utilisez les commandes intégrées de Docker Compose, telles que docker-compose up, docker-compose down, et docker-compose ps pour gérer les conteneurs.

Conclusion

Dans cet article, vous avez créé une application FLASK avec deux conteneurs, utilisé le registre des conteneurs Vultr pour gérer l'image Docker de l'application et profité de la fonctionnalité multi-container de Docker Compose pour gérer plusieurs conteneurs.

Cet article est parrainé par Vultr. Vultr est la plus grande plate-forme de cloud computing privée au monde. Favorite parmi les développeurs, Vultr a fourni des solutions mondiales de cloud computing flexibles et évolutives, du GPU cloud, des métaux nus et du stockage de cloud à plus de 1,5 million de clients dans 185 pays. En savoir plus sur Vultr

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal