Heim > Artikel > Betrieb und Instandhaltung > Was bedeuten die drei Musketiere in Docker?
Die drei Schwertkämpfer in Docker beziehen sich auf Schwarm, Zusammensetzen und Maschine. Compose ist ein Tool zum Definieren und Ausführen eines oder mehrerer Container und Anwendungen. Machine ist ein Befehlszeilentool, das die Docker-Installation vereinfacht. Swarm ist ein von der Community bereitgestelltes Tool, das Docker-Cluster nativ unterstützt.
Die Betriebsumgebung dieses Tutorials: Linux5.9.8-System, Docker-1.13.1-Version, Dell G3-Computer.
Die drei Musketiere in Docker-Containern sind Schwarm, Komponieren und Maschine.
1. Übersicht
In einer tatsächlichen Produktionsumgebung besteht eine Anwendung oft aus vielen Diensten, und die beste Praxis von Docker besteht darin, dass ein Container nur einen Prozess ausführt, also mehrere Mikrodienste ausführen Um mehrere Container auszuführen. Mehrere zusammenarbeitende Container erfordern ein effektives Tool, um sie zu verwalten und zu definieren, wie diese Container zueinander in Beziehung stehen. compose entstand.
compose ist ein Tool zum Definieren und Ausführen eines oder mehrerer Container (normalerweise mehrere), um sie auszuführen und anzuwenden. Die Verwendung von Compose kann die Erstellung von Container-Images und die Ausführung von Containern vereinfachen.
compose verwendet YAML-Dateien, um Beziehungen zwischen mehreren Containern zu definieren. Ein docker-compose up
kann die komplette Anwendung ausführen. Im Wesentlichen analysiert Compose die YAML-Datei in die Parameter des Docker-Befehls und ruft dann die entsprechende Docker-Befehlszeilenschnittstelle auf, um die Anwendung auf containerisierte Weise zu verwalten. Es startet Container nacheinander, indem es Abhängigkeiten zwischen Containern auflöst. Abhängigkeiten zwischen Containern werden durch das Tag links
in der YAML-Datei angegeben. 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 ist eine Kapselung des Docker-Befehls
Standardmäßig wird die Datei docker-compose.yml verwendet, um die Parameter in jedem Befehl anzugeben.Ein einfaches Beispiel:
rrreeeDiese YAML-Datei definiert zwei Dienste: Web und Redis. Der Name des Dienstes wird vom Benutzer angepasst. Das Image, das den Webdienst bereitstellt, wird aus der Docker-Datei erstellt. Der Webdienst überwacht Port 8080 und ordnet ihn dem aktuellen Verzeichnis des Hosts zu, auf das der Webserver zugreift die Backend-Redis-Datenbank durch Verknüpfen mit dem Redis-Container. Der Redis-Datenbankdienst wird durch Ausführen des Redis-Images bereitgestellt.
In der Datei docker-compose.yml enthält jeder definierte Dienst mindestens einen von build
oder image
, und andere Befehle sind optional. Der Build-Befehl gibt das Verzeichnis an, das die Docker-Datei enthält. Dabei kann es sich um ein relatives Verzeichnis oder ein absolutes Verzeichnis handeln.
Das Tag „ports“ in der Datei docker-compose.yml entspricht der Option „-p“ von Docker Run; das Tag „volumes“ entspricht der Option „-v“ von Docker run; auf die Option „--“ von Docker-Run-Links“.
Darüber hinaus wirdimage
verwendet, um das Bild des Dienstes anzugeben. Führen Sie abschließend den Befehl docker-compose up
in dem Verzeichnis aus, in dem sich docker-compose.yml befindet, und sowohl der Web- als auch der Redis-Dienst werden erfolgreich ausgeführt. Machine
Docker Machine ist ein Befehlszeilentool, das die Docker-Installation vereinfacht. Docker kann über eine einfache Befehlszeile auf der entsprechenden Plattform installiert werden und bietet Benutzern flexible Funktionen, mit denen sie Docker-Container auf jedem Host ausführen können. Einfach ausgedrückt ist eine Docker-Maschine eine Kombination aus einem Docker-Host und einem konfigurierten Docker-Client.
Führen Sie den Befehl docker-machine create --driver virtualbox dev
aus. Dieser Befehl erstellt zunächst ein CA-Zertifikat für die Kommunikation zwischen Docker-Client und Docker-Host. Als nächstes erstellen Sie eine virtuelle VirtualBox-Maschine, konfigurieren die TLS-Parameter für die Kommunikation und das Netzwerk und stellen schließlich die Docker-Betriebsumgebung, also den Docker-Host, bereit. 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)"
im Docker-Client aus, um die Umgebungsvariablen zu konfigurieren, die für die Docker-Host-Kommunikation verwendet werden.
Swarm
1 Übersicht
Swarm ist ein von der Docker-Community bereitgestelltes Tool, das Docker-Cluster nativ unterstützt. Es kann ein System, das aus mehreren Docker-Hosts besteht, in einen einzigen virtuellen Docker-Host umwandeln. Swarm stellt der Außenwelt zwei APIs zur Verfügung. Eine davon ist die Standard-Docker-API wie Dokku, Compose, Krane, Flynn, Deis, Jenkins usw.; die andere ist die Cluster-Management-API von Swarm, die für die Cluster-Verwaltung verwendet wird.
Und Googles Open-Source-Kubernetes ist derzeit das beliebteste Orchestrierungs- und Bereitstellungstool im Container-Ökosystem.
Die Architektur von Kubernetes basiert auf einem Master-Server mit mehreren Minion-Knoten. Ich bin noch nicht mit K8s in Berührung gekommen. Ich werde es hier zusammenfassen, nachdem ich mehr erfahren habe.
Blockdiagramm der K8s-Architektur
Kubecfg: Befehl Line-Schnittstelle, interagiert mit dem Master und fordert die Bereitstellung und Verwaltung des Anwendungsgeschäfts an
Empfohlenes Lernen: „🎜Docker-Video-Tutorial🎜“🎜Das obige ist der detaillierte Inhalt vonWas bedeuten die drei Musketiere in Docker?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!