Maison  >  Article  >  Opération et maintenance  >  Que signifient les Trois Mousquetaires dans Docker ?

Que signifient les Trois Mousquetaires dans Docker ?

青灯夜游
青灯夜游original
2021-11-25 17:42:536100parcourir

Les trois épéistes de Docker font référence à essaimer, composer et machiner. Compose est un outil utilisé pour définir et exécuter un ou plusieurs conteneurs et applications ; Machine est un outil en ligne de commande qui simplifie l'installation de Docker ; Swarm est un outil fourni par la communauté qui prend en charge nativement les clusters Docker.

Que signifient les Trois Mousquetaires dans Docker ?

L'environnement d'exploitation de ce tutoriel : système linux5.9.8, version docker-1.13.1, ordinateur Dell G3.

Les trois épéistes dans des conteneurs dockers essaiment, composent et usinent.

Compose

1. Présentation

Dans un environnement de production réel, une application est souvent composée de nombreux services, et la meilleure pratique de Docker est qu'un conteneur n'exécute qu'un seul processus, il est donc nécessaire d'exécuter plusieurs microservices. Pour exécuter plusieurs conteneurs. Plusieurs conteneurs travaillant ensemble nécessitent un outil efficace pour les gérer et définir les relations entre ces conteneurs. composer est né.

compose est un outil utilisé pour définir et exécuter un ou plusieurs conteneurs (généralement plusieurs) à exécuter et à appliquer. L'utilisation de compose peut simplifier la construction d'images de conteneurs et l'exécution de conteneurs.

compose utilise des fichiers YAML pour définir les relations entre plusieurs conteneurs. Un docker-compose up peut exécuter l'application complète. Essentiellement, compose analyse le fichier YAML dans les paramètres de la commande docker, puis appelle l'interface de ligne de commande docker correspondante pour gérer l'application de manière conteneurisée. Il démarre les conteneurs de manière séquentielle en résolvant les dépendances entre les conteneurs. Les dépendances entre les conteneurs sont spécifiées par la balise links dans le fichier YAML. docker-compose up 就可以把完整的应用跑起来。 本质上, compose 把 YAML  文件解析成 docker 命令的参数,然后调用相应的 docker 命令行接口,从而将应用以容器化的方式管理起来。它通过解析容器间的依赖关系顺序地启动容器。而容器间的依赖关系由 YAML 文件中的 links 标记指定。

2. compose 配置简介

Compose 是对 docker 命令的封装,默认使用 docker-compose.yml 文件指定各个命令中的参数。
一个简单的例子:

web:
  build: .
  ports:
  - 8080:80
  volumes:
  - . : /code
  links:
  - redis
redis:
  image: redis

这个 YAML 文件定义了两个服务: Web 和 Redis, 服务的名称由用户自定义。提供 Web 服务的镜像从 Dockerfile 构建; Web 服务监听80端口,并和主机的8080端口建立映射;主机的当前目录挂载到容器里的 /code 目录上;Web 服务器通过链接 Redis 容器来访问后台 Redis 数据库。而 Redis 数据库服务是通过运行 Redis 镜像来提供的。

在 docker-compose.yml 文件中,每个定义的服务都至少包含 buildimage 其中之一,其他命令都是可选的。 build 命令指定了包含 Dockerfile 的目录,可以是相对目录也可以是绝对目录。

docker-compose.yml 文件中的 "ports" 标记对应于 docker run 的 "-p"选项; "volumes"标记对应 docker run 的 "-v" 选项; "links" 标记对应 docker run 的 "--links"选项。

此外,image 用于指定服务的镜像。

最后,在 docker-compose.yml 所在的目录下执行 docker-compose up

2. Introduction à la configuration de composition

Compose est une encapsulation de la commande docker

Par défaut, le fichier docker-compose.yml est utilisé pour spécifier les paramètres de chaque commande.

Un exemple simple :

rrreee

Ce fichier YAML définit deux services : Web et Redis. Le nom du service est personnalisé par l'utilisateur. L'image qui fournit le service Web est construite à partir du Dockerfile ; le service Web écoute le port 80 et le mappe au port 8080 de l'hôte ; le répertoire actuel de l'hôte est monté dans le répertoire /code dans le conteneur ; la base de données backend Redis en créant un lien vers le conteneur Redis. Le service de base de données Redis est fourni en exécutant l'image Redis.

Dans le fichier docker-compose.yml, chaque service défini contient au moins un élément parmi build ou image, et les autres commandes sont facultatives. La commande build spécifie le répertoire contenant le Dockerfile, qui peut être un répertoire relatif ou un répertoire absolu.

La balise "ports" dans le fichier docker-compose.yml correspond à l'option "-p" de docker run ; la balise "volumes" correspond à l'option "-v" de docker run ; à l'option "--" des liens d'exécution du docker. Que signifient les Trois Mousquetaires dans Docker ?

De plus, image est utilisé pour spécifier l'image du service.

Enfin, exécutez la commande docker-compose up dans le répertoire où se trouve docker-compose.yml, et les services Web et Redis s'exécuteront avec succès. Machine

1. Présentation


Docker Machine est un outil de ligne de commande qui simplifie l'installation de Docker. Docker peut être installé sur la plate-forme correspondante via une simple ligne de commande, offrant aux utilisateurs des fonctions flexibles afin qu'ils puissent exécuter des conteneurs Docker sur n'importe quel hôte. En termes simples, une Docker Machine est une combinaison d'un hôte Docker et d'un client Docker configuré.

🎜Techniquement parlant, Machine est un framework et est relativement ouvert. Pour toute plate-forme fournissant des services de machine virtuelle, tant qu'un pilote pour la plate-forme est développé dans ce cadre, Docker Machine peut être intégré à la plate-forme et effectuer des actions telles que la création, la suppression, le démarrage et l'arrêt sur la plate-forme. 🎜🎜L'architecture de Docker Machine est illustrée dans la figure🎜🎜🎜🎜🎜🎜🎜2 Concepts et processus de base de Machine🎜🎜🎜🎜Docker Machine créera d'abord une machine virtuelle et créera un hôte Docker dessus, puis utilisera. le client Docker Communiquez avec l'hôte Docker pour créer une image sur l'hôte Docker et démarrer le conteneur. 🎜🎜Lorsque vous utilisez Docker Machine pour créer une machine virtuelle, vous devez développer le pilote correspondant Actuellement, les pilotes qui prennent en charge cette machine incluent le pilote VirtualBox, le pilote VMware et le pilote Hyper-V sous Windows. De plus, Machine prend également en charge la création d'hôtes cloud. Tant qu'un pilote conforme aux spécifications du framework est développé, Docker Machine peut prendre en charge la plate-forme correspondante. 🎜🎜L'adresse IP de l'hôte Docker créé par Machine est l'adresse IP de la machine virtuelle créée. 🎜Utilisez Docker Machine et le pilote VirtualBox pour créer une machine virtuelle locale et créer un hôte Docker. Le processus en cours est le suivant : 🎜
  • Exécutez la commande docker-machine create --driver virtualbox dev. Cette commande crée d'abord un certificat CA pour la communication entre le client Docker et l'hôte Docker. Ensuite, créez une machine virtuelle VirtualBox, configurez les paramètres TLS pour la communication et configurez le réseau, et enfin déployez l'environnement d'exploitation Docker, c'est-à-dire l'hôte Docker. docker-machine create --driver virtualbox dev命令。此命令首先创建用于 Docker client 和 Docker host 通信用的 CA 证书。 其次创建 VirtualBox 虚拟机, 并配置用于通信的 TLS 参数及配置网络, 最后部署 Docker 的运行环境 即 Docker host。

  • 在 Docker client 里运行 eval "$(docker-machine env dev)"

  • Exécutez la commande eval "$(docker-machine env dev)" dans le client Docker pour configurer les variables d'environnement utilisées pour la communication de l'hôte Docker.

Utilisez les commandes liées au docker pour créer ou démarrer le conteneur correspondant.

Swarm

1. Présentation


Swarm est un outil fourni par la communauté Docker qui prend en charge nativement les clusters Docker. Il peut convertir un système composé de plusieurs hôtes Docker en un seul hôte Docker virtuel. Swarm fournit deux API au monde extérieur. L'une est l'API Docker standard, telle que Dokku, Compose, Krane, Flynn, Deis, Jenkins, etc. ; l'autre est l'API de gestion de cluster de Swarm, qui est utilisée pour la gestion des clusters.

L'outil Swarm lui-même n'est pas très mature et n'est pas recommandé pour une utilisation dans des environnements de production.

Et Kubernetes open source de Google est actuellement l'outil d'orchestration et de déploiement le plus populaire dans l'écosystème des conteneurs.
L'architecture de Kubernetes est basée sur un serveur Maître avec plusieurs nœuds Minion. Je ne suis pas encore entré en contact avec les K8, je le résumerai ici après en avoir appris davantage.

Schéma fonctionnel de l'architecture K8sQue signifient les Trois Mousquetaires dans Docker ?

  • Explication des composants :
  • Maître : serveur maître, exécutant le processus de gestion de Kebernetes, y compris les services API, les contrôleurs et planificateurs de sauvegarde, etc.
  • Minion : l'hôte du service Kubelet et du moteur Docker. Minion accepte les instructions du maître
  • Kubelet : gestionnaire de niveau nœud Kubernetes, fonctionnant sur Minion
  • Pod : une collection de plusieurs conteneurs, et ces conteneurs s'exécutent sur les mêmes Minions sur. . Pod est la plus petite unité de gestion des K8s
  • Replication Controller : gère le cycle de vie du Pod
  • Service : définit les services et les ports qui permettent d'exposer le conteneur, ainsi que les agents externes pour la communication et l'interaction

Kubecfg : commande interface en ligne, interagit avec le Maître et demande le déploiement et la gestion de l'application métier

Apprentissage recommandé : "🎜tutoriel vidéo docker🎜"🎜

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