Maison > Article > Opération et maintenance > Que signifient les Trois Mousquetaires dans Docker ?
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.
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.
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 文件中,每个定义的服务都至少包含 build
或image
其中之一,其他命令都是可选的。 build 命令指定了包含 Dockerfile 的目录,可以是相对目录也可以是绝对目录。
docker-compose.yml 文件中的 "ports" 标记对应于 docker run 的 "-p"选项; "volumes"标记对应 docker run 的 "-v" 选项; "links" 标记对应 docker run 的 "--links"选项。
此外,image
用于指定服务的镜像。
最后,在 docker-compose.yml 所在的目录下执行 docker-compose up
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 :
rrreeeCe 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.
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
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é.
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)"
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.
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.
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 K8s
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!