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