Maison  >  Article  >  Opération et maintenance  >  Concentrez-vous sur la façon d'utiliser différents répertoires dans Docker Service

Concentrez-vous sur la façon d'utiliser différents répertoires dans Docker Service

PHPz
PHPzoriginal
2023-04-19 15:26:53750parcourir

Docker est une technologie de conteneurisation très populaire qui permet de créer, déployer et exécuter des applications rapidement et efficacement. Docker Service est l'un des mécanismes les plus couramment utilisés pour la gestion des clusters Docker. À l'aide du service Docker, les utilisateurs peuvent combiner plusieurs conteneurs Docker en un seul service pour obtenir une haute disponibilité, un équilibrage de charge et d'autres objectifs. Cet article se concentrera sur la façon d'utiliser différents répertoires dans Docker Service.

Qu'est-ce que le service Docker ?

Docker Service est l'un des mécanismes de gestion du cluster Docker. Il peut combiner plusieurs conteneurs Docker en un seul service. Docker Service implémente des fonctions telles que la haute disponibilité, l'équilibrage de charge et l'expansion automatique, qui peuvent aider les utilisateurs à optimiser les services et les applications.

Docker Service prend en charge différentes stratégies de déploiement, telles que la réplique et la globalité. Lorsqu'ils utilisent la stratégie de réplication, les utilisateurs peuvent définir le nombre de conteneurs à lancer, et Docker Engine déploiera et gérera automatiquement les instances de conteneurs sur le cluster. Lors de l'utilisation de la stratégie globale, Docker Engine démarrera une copie du conteneur et la déploiera sur chaque nœud du cluster.

Avantages de l'utilisation du service Docker

L'utilisation du service Docker peut apporter de nombreux avantages, en voici quelques-uns principaux :

  • Haute disponibilité : le service Docker peut facilement atteindre une haute disponibilité des conteneurs, même si un certain nœud tombe en panne, il peut également démarrez automatiquement de nouvelles instances de conteneur sur d'autres nœuds via la fonction d'équilibrage automatique du conteneur.
  • Équilibrage de charge : l'utilisation du service Docker peut facilement réaliser un équilibrage de charge, de sorte que l'application de l'utilisateur soit toujours dans le meilleur état sans avoir à prêter attention aux problèmes d'équilibrage de charge.
  • Extension automatique : Docker Service prend en charge l'expansion automatique. Les utilisateurs n'ont qu'à ajuster le nombre de conteneurs pour réaliser l'expansion de l'application.

Comment Docker Service utilise-t-il différents répertoires ?

Docker Service utilise le répertoire où se trouve le Dockerfile comme contexte de construction de l'image du conteneur par défaut. Cependant, lorsque nous devons créer différentes images dans différents répertoires, nous devons utiliser différents contextes de construction.

Ce qui suit explique comment utiliser différents répertoires pour créer des images Docker et utiliser le service Docker pour déployer des applications.

  1. Créer la structure de répertoires

Tout d'abord, nous créons la structure de répertoires suivante :

.
├── dockerfiles
│   ├── web1
│   │   ├── Dockerfile
│   │   └── index.html
│   └── web2
│       ├── Dockerfile
│       └── index.html
├── docker-compose.yml
└── services.yml

Dans le répertoire dockerfiles, nous avons créé deux répertoires, web1 et web2 respectivement. Chaque répertoire contient un fichier Dockerfile et un fichier index.html. Parmi eux, le fichier Dockerfile est utilisé pour créer l'image Docker et le fichier index.html est utilisé pour tester si le conteneur fonctionne normalement.

Dans le fichier services.yml, nous définissons un service nommé web pour déployer deux conteneurs, web1 et web2.

  1. Écrire des Dockerfiles

Dans notre exemple, nous avons créé un Dockerfile pour web1 et web2 respectivement. Ils sont les suivants :

Fichier Dockerfile dans le répertoire web1 :

FROM nginx
COPY index.html /usr/share/nginx/html

Fichier Dockerfile dans le répertoire web2 :

FROM nginx
WORKDIR /usr/share/nginx/html
COPY index.html .

Ici, nous utilisons différents fichiers Dockerfile et utilisons différents contextes de construction dans chaque fichier. Le Dockerfile de web1 utilise la directive COPY, qui copie le fichier index.html du contexte de construction spécifié dans le conteneur. Le Dockerfile web2 utilise l'instruction WORKDIR et l'instruction COPY, qui définiront le répertoire de travail sur /usr/share/nginx/html et copieront le fichier index.html du contexte de construction vers le conteneur.

  1. Écriture du fichier docker-compose.yml

Nous utilisons toujours le fichier docker-compose.yml pour définir nos services. Le contenu du fichier est le suivant :

version: '3.7'

services:
  web1:
    build:
      context: ./dockerfiles/web1
    image: web1
    deploy:
      replicas: 2
    ports:
      - 8081:80

  web2:
    build:
      context: ./dockerfiles/web2
    image: web2
    deploy:
      replicas: 3
    ports:
      - 8082:80

Dans le fichier docker-compose.yml, nous définissons deux services : web1 et web2, qui utilisent respectivement des contextes de build différents. Dans le même temps, nous spécifions également les attributs de réplicas et de ports de chaque service pour contrôler le nombre de conteneurs et le mappage des ports.

  1. Déployer le service

Enfin, nous utilisons la commande Docker Stack pour déployer le service :

$ docker stack deploy -c services.yml myapp

Une fois l'exécution de la commande terminée, nous pouvons utiliser la commande suivante pour afficher l'état du service :

$ docker stack ps myapp
  1. Testez le service

Une fois le déploiement du service terminé, nous pouvons utiliser le navigateur pour accéder aux URL suivantes afin de tester si les services web1 et web2 fonctionnent correctement :

service web1 :

http://localhost:8081

service web2 :

http://localhost:8082

Si tout va bien, nous verrons le index.html sur le contenu de chaque fichier de service.

Résumé

Dans cet article, nous avons présenté comment utiliser différents répertoires pour la création de conteneurs dans Docker Service. Nous avons créé deux services avec des Dockerfiles différents et défini le contexte de construction des services dans le fichier docker-compose.yml. Enfin, nous avons déployé le service et testé son bon fonctionnement. Cela offre aux utilisateurs utilisant le service Docker un moyen pratique de créer des images de conteneurs dans différents répertoires.

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