Consul by HashiCorp est un outil polyvalent qui remplit plusieurs fonctions dans un environnement DevOps moderne. Il est largement utilisé pour la découverte de services, contrôles de santé, équilibrage de charge et, notamment, en tant que clé-valeur distribuée (KV) magasin. Le magasin KV de Consul est parfait pour stocker des produits dynamiques données de configuration, indicateurs de fonctionnalités, secrets et métadonnées de manière hautement de manière disponible et cohérente dans toute votre infrastructure afin qu'elle puisse être accessible dynamiquement par les services dans un système distribué. En utilisant Docker pour configurer le magasin KV de Consul permet une configuration rapide et environnements isolés, ce qui le rend idéal pour les tests et le développement.
Ce tutoriel vous guidera à travers le processus de configuration et configuration du magasin KV de Consul à l'aide de Docker. À la fin, vous aurez un instance Consul entièrement fonctionnelle fonctionnant dans Docker, avec des paires KV configuré et accessible. Cette configuration est essentielle pour un service dynamique configuration et gestion de l'état dans les systèmes distribués.
Étape 1 — Extraire l'image Docker Consul
Extirons l'image officielle Consul de Docker Hub. Cette image est maintenu par HashiCorp et comprend tout ce dont vous avez besoin pour exécuter Consul.
Connectez-vous à la console de votre Ubuntu Droplet et courir :
docker pull hashicorp/consul:latest
Outputlatest: Pulling from hashicorp/consul c8bcd218a73d: Pull complete 5f1ac8227c2a: Pull complete c51fd79d429a: Pull complete 91eff479bde6: Pull complete 4dfcc18e51db: Pull complete 3e2a8bf39bf9: Pull complete bd9ddc54bea9: Pull complete 2054d291fb84: Pull complete Digest: sha256:e244c64df77ab3586f177f1692e98575086eb40343dc82a6320f5e79543490eb Status: Downloaded newer image for hashicorp/consul:latest docker.io/hashicorp/consul:latest
Étape 2 — Exécuter le consul Conteneur
Maintenant que l'image Consul est téléchargée, vous pouvez démarrer un nouveau Consul récipient. Ce conteneur servira de serveur Consul et vous permettent d'interagir avec la boutique KV.
Pour démarrer le conteneur, courir :
docker run -d --name=consul-server -e
OutputCONSUL_BIND_INTERFACE=eth0 -p 8500:8500 -p 8600:8600/udp hashicorp/consul c893b6707686bce8434213975a75c936b834cf25fc84d10b407a11c4fa8ca8ba
Voici ce que signifie cette commande makes:
- -d exécute le conteneur en mode détaché (en arrière-plan).
- --name=consul-server attribue un nom au conteneur.
- -e CONSUL_BIND_INTERFACE=eth0 définit l'interface réseau à laquelle Consul doit se lier. Ceci est nécessaire pour une bonne communication réseau.
- -p 8500:8500 mappe l'interface utilisateur Web et le port API du Consul à l'hôte.
- -p 8600:8600/udp mappe le port du service DNS pour découverte du service.
Cette étape est cruciale car elle met en place le service principal Consul, que vous utiliserez pour configurer le KV store.
Étape 3 — Vérification de l'installation de Consul
Pour vous assurer que Consul fonctionne correctement, vous devez vérifier l'état du conteneur et accéder à l'interface utilisateur de Consul.
Tout d'abord, exécutez docker ps pour répertorier tous les conteneurs en cours d'exécution et vérifiez que le conteneur Consul est en cours d'exécution.
❯ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c893b6707686 hashicorp/consul "docker-entrypoint.s…" 51 seconds ago Up 50 seconds 8300-8302/tcp, 8600/tcp, 8301-8302/udp, 0.0.0.0:8500->8500/tcp, 0.0.0.0:8600->8600/udp consul-server
Maintenant, vérifiez si le consul est accessible, ouvrez un navigateur Web et accédez à http://localhost:8500. Vous devriez voir l'interface utilisateur du consul.
Cette étape de vérification est importante pour confirmer que votre consul l'instance s'exécute sans aucun problème avant de stocker les données dans le KV store (étape 5).
Étape 4 — Configuration du pare-feu (facultatif)
Si votre instance Consul doit être accessible de l'extérieur (par exemple, depuis autres nœuds d'un cluster), vous devez ajuster les paramètres de votre pare-feu pour autoriser le trafic sur les ports nécessaires.
Par exemple, si vous exécutez Consul sur une instance cloud, vous pouvez devez autoriser le trafic entrant sur les ports 8500 (API HTTP) et 8600 (DNS). Les commandes spécifiques varient en fonction de votre solution de pare-feu (UFW, iptables, etc.).
Cette étape garantit que votre instance Consul est accessible depuis d'autres machines, ce qui est essentiel pour les configurations distribuées.
Étape 5 — Stockage des paires clé-valeur
Avec Consul en cours d'exécution, vous pouvez désormais utiliser le magasin KV pour stocker données de configuration. Vous pouvez ajouter des paires clé-valeur à l'aide de la CLI Consul ou l'interface utilisateur Web.
Pour stocker une paire clé-valeur via la CLI, courir :
docker exec -it consul-server consul kv put config/db_host 192.168.1.100 Success! Data written to: config/db_host
docker exec -it consul-server consul kv put config/db_port 3306 Success! Data written to: config/db_port
Voici ce que signifie cette commande fait :
- -it - Lance le terminal interactif du système local vers le conteneur.
- consul kv put - La commande kv put écrit les données dans le magasin KV du chemin donné.
- config/db_host - chemin pour stocker la valeur.
- 192.168.1.100 - Valeur.
À l'aide de l'interface utilisateur Web,
- Accédez à l'interface utilisateur du Consul (http://localhost:8500).
- Cliquez sur l'onglet « Clé/Valeur ».
- Créez une nouvelle clé en cliquant sur « Créer ».
- Entrez la clé (par exemple, config/db_host) et la valeur (par exemple, 192.168.1.100).
Ces commandes et actions stockent des données de configuration critiques auxquelles vos services peuvent accéder dynamiquement au moment de l'exécution.
Étape 6 — Récupération des paires clé-valeur
Une fois que vous avez stocké du KV paires, vous souhaiterez les récupérer pour vous assurer qu'elles ont été stockées correctement.
À l'aide de la CLI, récupérez une valeur à l'aide de la commande suivante :
docker exec -it consul-server consul kv get config/db_host 192.168.1.100
Utiliser le Web UI,
- Allez dans l'onglet « Clé/Valeur » dans l'interface utilisateur du Consul.
- Trouvez la clé que vous avez créée et cliquez dessus pour voir la valeur stockée.
Récupérer les paires KV est une étape nécessaire pour vérifier que vos données sont correctement stockées et accessible.
Étape 7 — Persistance des données à l'aide de volumes Docker
Par défaut, les conteneurs Docker sont éphémères, ce qui signifie que toutes les données stockés à l’intérieur seront perdus si le conteneur est retiré. Persister vos données Consul KV, vous devez utiliser les volumes Docker.
- Arrêtez et supprimez le conteneur Consul actuel :
docker stop consul-server docker rm consul-server
Maintenant, vérifiez les conteneurs et vous devriez remarquer que le conteneur Consul ne fonctionne pas
docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2.Exécutez un nouveau conteneur Consul avec un volume Docker ci-joint :
docker run -d --name=consul-server -e
OutputCONSUL_BIND_INTERFACE=eth0 -p 8500:8500 -p 8600:8600/udp -v consul_data:/consul/data hashicorp/consul 2d2a7d3ff1911c2283e70506d68391a5cbf9c935a2ae447bfb8fa21481989ef1
docker ps
OutputCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2d2a7d3ff191 hashicorp/consul "docker-entrypoint.s…" 5 seconds ago Up 4 seconds 8300-8302/tcp, 8600/tcp, 8301-8302/udp, 0.0.0.0:8500->8500/tcp, 0.0.0.0:8600->8600/udp consul-server
Le L'option -v consul_data:/consul/data monte un volume Docker sur le conteneur, garantissant ainsi la persistance de votre magasin KV lors des redémarrages du conteneur.
Étape 8 — Automatisation du démarrage de Consul (facultatif)
Pour la production déploiements, vous souhaiterez peut-être automatiser le démarrage de votre conteneur Consul à l’aide de Docker Compose. Docker Compose simplifie applications Docker multi-conteneurs et facilite la gestion services.
Créez un fichier docker-compose.yml avec le contenu suivant :
services: consul: image: hashicorp/consul:latest environment: - CONSUL_BIND_INTERFACE=eth0 volumes: - consul_data:/consul/data ports: - "8500:8500" - "8600:8600/udp" restart: alwaysvolumes: consul_data:
Alors, courir :
docker-compose up -d
Output[ ] Running 2/2 ✔ Network work_default Created 0.0s ✔ Container consul-server Started 0.1s
docker ps
OutputWARN[0000] /Users/anandhkumar/work/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS work-consul-1 hashicorp/consul:latest "docker-entrypoint.s…" consul 40 seconds ago Up 11 seconds 8300-8302/tcp, 8600/tcp, 8301-8302/udp, 0.0.0.0:8500->8500/tcp, 0.0.0.0:8600->8600/udp
Ceci La commande démarre Consul automatiquement et garantit son redémarrage en cas d'échec, ce qui le rend plus robuste pour une utilisation en production.
Étape 9 — Nettoyage
Une fois que vous avez fini de travailler avec votre instance Consul, vous devez nettoyons votre environnement Docker pour libérer des ressources.
Arrêtons et supprimons le Consul contenant :
docker stop consul-server docker rm consul-serverdocker ps
outputCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Si vous en avez fini avec Consul, vous pouvez également supprimer le Docker image :
docker rmi hashicorp/consul
outputhashicorp/consul@sha256:e244c64df77ab3586f177f1692e98575086eb40343dc82a6320f5e79543490eb Deleted: sha256:eff8ccb509560987755a70df8d6c0b9410538d503d99498ae1ea9f48066b0439 Deleted: sha256:b5e6402bbb78eb061d538505a30300ef7f612104eaf0f11b17839a9b29bc5603 Deleted: sha256:1c61ada2ad8074615120d13bd805260d766ae8424cafbda4bded529d6a204d6f Deleted: sha256:9b36da670e2a59f1d81c6e3c9d55906c576b384df51272977e5a9caea7131e74 Deleted: sha256:8c6e52c441c246f60ca146b71204b7d6511df75fa87a0dc0a0f91141964e8fd9 Deleted: sha256:1fce18208235de2be3c419764ec1d469229af5387447d21649c841632c653cef Deleted: sha256:68e0a114c9c35b9aa8cac31fa32b27f886361bc85fcc63f34e882e9128f33a14 Deleted: sha256:3da5b888208a9b19694bfeaf8c74a432b50f44542d717c9e1f3ab273e505855a Deleted: sha256:dea73e9287e6e2f3b7f9fcac4f20767d7badeefa24e52f990f1674e98abfa1a3 Deleted: sha256:201fa22d1f4c7d6e7ec43135c63b2260f303f4864f5eb43569faaa1731628799
Le nettoyage permet de maintenir un environnement de développement ordonné et garantit que les ressources Docker ne sont pas consommés inutilement.
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!

Les scénarios d'application de Docker dans les projets réels comprennent la simplification du déploiement, la gestion des applications multi-container et l'optimisation des performances. 1.Docker simplifie le déploiement des applications, comme l'utilisation de DockerFile pour déployer des applications Node.js. 2. DockerCompose gère des applications multi-container, telles que les services Web et de base de données dans l'architecture de microservice. 3. L'optimisation des performances utilise la construction en plusieurs étapes pour réduire la taille de l'image et surveiller l'état du conteneur grâce à des contrôles de santé.

Sélectionnez Docker dans un petit projet ou un environnement de développement, et Kubernetes dans un grand projet ou un environnement de production. 1.Docker convient à une itération et à des tests rapides, 2. Kubernetes offre de puissantes capacités d'orchestration d'orchestration, adaptées à la gestion et à l'élargissement de grandes applications.

Docker est important sur Linux car Linux est sa plate-forme native qui fournit des outils riches et un support communautaire. 1. Installer Docker: Utilisez Sudoapt-GetUpdate et Sudoapt-GetInstallDocker-Cedocker-Ce-Clicotainerd.io. 2. Créer et gérer les conteneurs: utilisez des commandes Dockerrun, telles que Dockerrun-D --namemyNginx-p80: 80nginx. 3. Écrivez Dockerfile: Optimisez la taille de l'image et utilisez une construction en plusieurs étapes. 4. Optimisation et débogage: utilisez des dockerlogs et dockerex

Docker est un outil de contenerisation et Kubernetes est un outil d'orchestration de conteneurs. 1. Docker Packages Applications et leurs dépendances dans des conteneurs qui peuvent s'exécuter dans n'importe quel environnement compatible Docker. 2. Kubernetes gère ces conteneurs, implémentant le déploiement automatisé, la mise à l'échelle et la gestion et la réalisation efficace des applications.

Le but de Docker est de simplifier le déploiement des applications et de s'assurer que les applications s'exécutent de manière cohérente dans différents environnements via la technologie de contenerisation. 1) Docker résout le problème des différences environnementales en emballant les applications et les dépendances dans les conteneurs. 2) Créez des images à l'aide de Dockerfile pour s'assurer que l'application s'exécute de manière cohérente n'importe où. 3) Le principe de travail de Docker est basé sur des images et des conteneurs, et utilise l'espace de noms et les groupes de contrôle du noyau Linux pour réaliser l'isolement et la gestion des ressources. 4) L'utilisation de base comprend la tir et l'exécution d'images de DockerHub, et l'utilisation avancée consiste à gérer les applications multi-container à l'aide de DockerCose. 5) Des erreurs courantes telles que la défaillance du bâtiment d'image et l'échec du conteneur à démarrer, vous pouvez déboguer à travers les journaux et la configuration du réseau. 6) Construction d'optimisation des performances

Les méthodes d'installation et d'utilisation de Docker sur Ubuntu, Centos et Debian sont différentes. 1) Ubuntu: Utilisez le gestionnaire de package APT, la commande est sudoapt-getUpdate && sudoapt-getinstalldocker.io. 2) CENTOS: Utilisez le gestionnaire de packages YUM et vous devez ajouter le référentiel Docker. La commande est sudoyumininstall-yyum-utils && sudoyum-config-manager - add-repohttps: //download.docker.com/lin

L'utilisation de Docker sur Linux peut améliorer l'efficacité du développement et simplifier le déploiement des applications. 1) Tirez Ubuntu Image: Dockerpullubuntu. 2) Exécutez un conteneur Ubuntu: Dockerrun-itubuntu / bin / bash. 3) Créez dockerfile contenant nginx: fromUbuntu; runapt-getUpdate && apt-getInstall-yginx; expose80. 4) Construisez l'image: dockerbuild-tmy-nginx. 5) Run Container: Dockerrun-D-P8080: 80

Docker simplifie le déploiement et la gestion des applications sur Linux. 1) Docker est une plate-forme conteneurisée qui emballe les applications et leurs dépendances dans des conteneurs légers et portables. 2) Sur Linux, Docker utilise des groupes et des espaces de noms pour implémenter l'isolement des conteneurs et la gestion des ressources. 3) Les usages de base incluent le tirage d'images et les conteneurs en cours d'exécution. Les usages avancés tels que DockerCompose peuvent définir des applications multi-container. 4) Débogage des commandes Dockerlogs et DockErexec couramment utilisées. 5) L'optimisation des performances peut réduire la taille de l'image grâce à la construction en plusieurs étapes, et garder le Dockerfile simple est la meilleure pratique.


Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

SublimeText3 version anglaise
Recommandé : version Win, prend en charge les invites de code !

SublimeText3 Linux nouvelle version
Dernière version de SublimeText3 Linux

Version Mac de WebStorm
Outils de développement JavaScript utiles

mPDF
mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),