Maison Opération et maintenance exploitation et maintenance Linux Comment utiliser Docker pour l'expansion horizontale et l'équilibrage de charge des conteneurs

Comment utiliser Docker pour l'expansion horizontale et l'équilibrage de charge des conteneurs

Nov 07, 2023 pm 03:26 PM
docker 负载均衡 水平扩展

Comment utiliser Docker pour lexpansion horizontale et léquilibrage de charge des conteneurs

Comment utiliser Docker pour l'expansion horizontale et l'équilibrage de charge des conteneurs

Introduction :
Avec le développement continu de la technologie du cloud computing, la technologie de conteneurisation est désormais devenue l'un des principaux moyens de créer, de déployer et de gérer des applications. En tant que plate-forme de conteneurisation la plus populaire actuellement, Docker fournit non seulement des méthodes pratiques de packaging et de déploiement d'applications, mais prend également en charge l'expansion horizontale et l'équilibrage de charge des conteneurs. Cet article présentera en détail comment utiliser Docker pour l'expansion horizontale et l'équilibrage de charge des conteneurs, et donnera des exemples de code spécifiques.

1. Expansion horizontale des conteneurs Docker
L'expansion horizontale des conteneurs fait référence à l'augmentation du débit et des capacités de concurrence des applications en augmentant le nombre de conteneurs. Docker propose plusieurs façons de réaliser une expansion horizontale des conteneurs. Deux méthodes courantes sont présentées ci-dessous.

  1. Utilisez Docker Compose pour réaliser une expansion horizontale des conteneurs
    Docker Compose est un outil officiellement lancé par Docker Il peut définir la configuration et la relation de plusieurs conteneurs via un fichier YAML et réaliser leur gestion par lots. En modifiant le nombre de conteneurs dans ce fichier, l'expansion horizontale des conteneurs peut être réalisée simplement et rapidement. Voici un exemple de fichier Docker Compose, qui contient la configuration d'une application Web et d'une base de données :
version: '3'
services:
  web:
    build: .
    ports:
      - "80:80"
    depends_on:
      - db
  db:
    image: mysql:5.7
    environment:
      - MYSQL_ROOT_PASSWORD=root
Copier après la connexion

Supposons que nous souhaitions augmenter le nombre de conteneurs de l'application Web de 1 à 3, il nous suffit de changer le nom du fichier Web. dans le fichier ci-dessus Changez simplement l'attribut replicas du service en 3 :

version: '3'
services:
  web:
    build: .
    ports:
      - "80:80"
    depends_on:
      - db
    replicas: 3
  db:
    image: mysql:5.7
    environment:
      - MYSQL_ROOT_PASSWORD=root
Copier après la connexion

Utilisez ensuite la commande suivante pour démarrer et gérer le conteneur :

$ docker-compose up -d
Copier après la connexion

Docker Compose nous aidera automatiquement à créer et gérer 3 conteneurs d'applications Web, atteignant ainsi l'horizontalité expansion du conteneur.

  1. Utilisez Docker Swarm pour réaliser une expansion horizontale des conteneurs
    Docker Swarm est un outil d'orchestration de conteneurs et de gestion de cluster officiellement fourni par Docker. Il réalise une expansion horizontale des conteneurs en planifiant et en gérant les conteneurs Docker sur plusieurs nœuds. Voici un exemple de fichier de configuration Docker Swarm :
version: '3'
services:
  web:
    image: nginx:latest
    deploy:
      replicas: 3
      restart_policy:
        condition: on-failure
Copier après la connexion

En utilisant les commandes fournies par Docker Swarm, vous pouvez rapidement créer et gérer des conteneurs et réaliser une expansion horizontale des conteneurs :

$ docker stack deploy -c docker-compose.yml myapp
Copier après la connexion

Utilisez les commandes ci-dessus pour modifier les fichiers de configuration définis. dans ce qui précède, le service Web est créé en tant que service nommé myapp, qui contient 3 conteneurs. Docker Swarm créera et gérera automatiquement ces trois conteneurs sur différents nœuds du cluster, réalisant ainsi une expansion horizontale des conteneurs.

2. Équilibrage de charge des conteneurs Docker
L'équilibrage de charge fait référence à la répartition uniforme des demandes entre plusieurs conteneurs pour améliorer la puissance de traitement et la disponibilité des applications. Docker propose diverses façons d'équilibrer la charge des conteneurs. Deux méthodes couramment utilisées sont présentées ci-dessous.

  1. Utilisez l'équilibreur de charge intégré de Docker
    Docker dispose d'un équilibreur de charge intégré basé sur l'algorithme round-robin, qui peut automatiquement répartir les requêtes de manière uniforme entre plusieurs conteneurs. Mappez simplement plusieurs conteneurs identiques sur le même port pour obtenir un équilibrage de charge. Voici un exemple de fichier Docker Compose, qui contient la configuration de deux applications Web :
version: '3'
services:
  web1:
    build: .
    ports:
      - "8080:80"
  web2:
    build: .
    ports:
      - "8081:80"
Copier après la connexion

Grâce à la configuration ci-dessus, les requêtes de l'application Web seront réparties uniformément entre les conteneurs web1 et web2.

  1. Utilisez des outils d'orchestration de conteneurs tiers
    En plus du propre équilibreur de charge de Docker, vous pouvez également utiliser certains outils d'orchestration de conteneurs tiers pour obtenir un équilibrage de charge plus puissant et plus flexible. Par exemple, vous pouvez utiliser Nginx comme serveur proxy inverse pour distribuer les requêtes à plusieurs conteneurs. Voici un exemple de fichier de configuration Nginx :
http {
    upstream backend {
        server web1:80;
        server web2:80;
    }
    
    server {
        listen 80;
        
        location / {
            proxy_pass http://backend;
        }
    }
}
Copier après la connexion

Dans la configuration ci-dessus, nous avons défini un cluster d'équilibrage de charge nommé backend, qui contient deux conteneurs : web1 et web2. Nginx répartira les requêtes uniformément entre les deux conteneurs en fonction de la configuration.

Conclusion : 
Grâce à l'introduction de cet article, nous pouvons voir que Docker fournit une multitude de fonctions et d'outils pour réaliser l'expansion horizontale et l'équilibrage de charge des conteneurs. Que vous utilisiez Docker Compose ou Docker Swarm, l'expansion horizontale des conteneurs peut être facilement réalisée. L'équilibrage de charge des conteneurs peut également être obtenu à l'aide de l'équilibreur de charge intégré de Docker ou d'outils d'orchestration de conteneurs tiers. L'utilisation de ces fonctions et outils facilite la création et la gestion d'applications conteneurisées, améliorant ainsi les performances et la disponibilité des applications.

Références :

  • Documentation officielle de Docker : https://docs.docker.com/
  • Documentation officielle de Docker Compose : https://docs.docker.com/compose/
  • Documentation officielle de Docker Swarm : https: / /docs.docker.com/engine/swarm/

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment lire la version docker Comment lire la version docker Apr 15, 2025 am 11:51 AM

Pour obtenir la version Docker, vous pouvez effectuer les étapes suivantes: exécutez la commande docker "docker --version" pour afficher les versions client et serveur. Pour Mac ou Windows, vous pouvez également afficher les informations de version via l'onglet Version de la GUI de bureau Docker ou du menu de bureau à propos de Docker.

Comment créer un miroir dans Docker Comment créer un miroir dans Docker Apr 15, 2025 am 11:27 AM

Étapes pour créer une image docker: écrivez un dockerfile qui contient les instructions de construction. Créez l'image dans le terminal, en utilisant la commande docker build. Marquez l'image et attribuez des noms et des balises à l'aide de la commande docker tag.

Comment afficher les journaux de Docker Comment afficher les journaux de Docker Apr 15, 2025 pm 12:24 PM

Les méthodes pour afficher les journaux Docker incluent: à l'aide de la commande docker logs, par exemple: docker logs contener_name Utilisez la commande docker exec pour exécuter / bin / sh et afficher le fichier journal, par exemple: docker exec -it contener_name / bin / sh; Cat /var/log/continer_name.log Utilisez la commande docker-compose JORS de Docker Compose, par exemple: docker-compose -f docker-com

Comment changer la source d'image Docker en Chine Comment changer la source d'image Docker en Chine Apr 15, 2025 am 11:30 AM

Vous pouvez passer à la source de miroir domestique. Les étapes sont les suivantes: 1. Modifiez le fichier de configuration /etc/docker/daemon.json et ajoutez l'adresse source miroir; 2. Après enregistrer et sortir, redémarrez le service Docker Sudo Systemctl Docker pour améliorer la vitesse et la stabilité du téléchargement d'image.

Comment utiliser Docker Desktop Comment utiliser Docker Desktop Apr 15, 2025 am 11:45 AM

Comment utiliser Docker Desktop? Docker Desktop est un outil pour exécuter des conteneurs Docker sur les machines locales. Les étapes à utiliser incluent: 1. Installer Docker Desktop; 2. Démarrer Docker Desktop; 3. Créer une image Docker (à l'aide de DockerFile); 4. Build Docker Image (en utilisant Docker Build); 5. Exécuter Docker Container (à l'aide de Docker Run).

Comment vérifier le nom du conteneur Docker Comment vérifier le nom du conteneur Docker Apr 15, 2025 pm 12:21 PM

Vous pouvez interroger le nom du conteneur Docker en suivant les étapes: répertorier tous les conteneurs (Docker PS). Filtrez la liste des conteneurs (à l'aide de la commande grep). Obtient le nom du conteneur (situé dans la colonne "Noms").

Comment enregistrer l'image docker Comment enregistrer l'image docker Apr 15, 2025 am 11:54 AM

Pour enregistrer l'image dans Docker, vous pouvez utiliser la commande docker commit pour créer une nouvelle image, contenant l'état actuel du conteneur spécifié, Syntaxe: Docker Commit [Options] Nom d'image de l'ID de conteneur. Pour enregistrer l'image dans le référentiel, vous pouvez utiliser la commande docker push, Syntax: Docker Push Image Name [: Tag]. Pour importer des images enregistrées, vous pouvez utiliser la commande docker pull, syntaxe: docker pull name [: tag].

Comment construire un référentiel privé par Docker Comment construire un référentiel privé par Docker Apr 15, 2025 am 11:06 AM

Vous pouvez créer des référentiels privés Docker pour stocker et gérer en toute sécurité les images de conteneurs, en fournissant un contrôle et une sécurité stricts. Les étapes incluent: la création d'un référentiel, l'accès, le déploiement d'un référentiel, la poussée d'une image et le tir d'une image. Les avantages incluent la sécurité, le contrôle des versions, la réduction du trafic réseau et la personnalisation.

See all articles