部署与编排
原文:https://docs.docker.com/get-started/orchestration/
容器化为应用程序提供了向云和数据中心移动和扩展的机会。容器能有效地保证这些应用程序在任何地方都以相同的方式运行,让您可以快速轻松地利用这些环境。此外,随着您的应用程序规模扩大,您需要一些工具来帮助自动化这些应用程序的维护,自动替换失败的容器,并在其生命周期中管理更新和重新配置这些容器。
管理、扩展和维护容器化应用程序的工具被称为编排器。两种最流行的编排工具是 Kubernetes 和 Docker Swarm。Docker Desktop 为这两种编排器提供开发环境。
高级模块教您如何:
启用 Kubernetes
Docker Desktop 为您快速轻松地设置 Kubernetes。请按照适合您操作系统的设置和验证指南进行操作:
Mac
从 Docker 仪表板中,导航至 设置,并选择 Kubernetes 标签页。
选中标记为 启用 Kubernetes 的复选框,并选择 应用并重启。Docker Desktop 将为您自动设置 Kubernetes。当您在 设置 中看到旁边显示“Kubernetes 运行中”的绿灯时,您就知道 Kubernetes 已成功启用。
要确认 Kubernetes 已启动并运行,创建一个名为
pod.yaml
的文本文件,内容如下:yamlapiVersion: v1 kind: Pod metadata: name: demo spec: containers: - name: testpod image: alpine:latest command: ["ping", "8.8.8.8"]
这描述了一个包含单个容器的 pod,该容器仅执行对 8.8.8.8 的简单 ping 操作。
在终端中,导航到您创建
pod.yaml
的位置,并创建您的 pod:consolekubectl apply -f pod.yaml
检查您的 pod 是否正在运行:
consolekubectl get pods
您应该看到类似以下内容:
shellNAME READY STATUS RESTARTS AGE demo 1/1 Running 0 4s
检查您是否获得预期的 ping 过程日志:
consolekubectl logs demo
您应该看到健康 ping 过程的输出:
shellPING 8.8.8.8 (8.8.8.8): 56 data bytes 64 bytes from 8.8.8.8: seq=0 ttl=37 time=21.393 ms 64 bytes from 8.8.8.8: seq=1 ttl=37 time=15.320 ms 64 bytes from 8.8.8.8: seq=2 ttl=37 time=11.111 ms ...
最后,拆除您的测试 pod:
consolekubectl delete -f pod.yaml
启用 Docker Swarm
Docker Desktop 主要运行在 Docker Engine 上,Docker Engine 内置了运行 Swarm 所需的一切。请按照适合您操作系统的设置和验证指南进行操作:
Mac
打开终端,并初始化 Docker Swarm 模式:
consoledocker swarm init
如果一切顺利,您应该看到以下类似的信息:
shellSwarm initialized: current node (tjjggogqpnpj2phbfbz8jd5oq) is now a manager. 要将工作节点添加到此 Swarm,请运行以下命令: docker swarm join --token SWMTKN-1-3e0hh0jd5t4yjg209f4g5qpowbsczfahv2dea9a1ay2l8787cf-2h4ly330d0j917ocvzw30j5x9 192.168.65.3:2377 要将管理节点添加到此 Swarm,请运行 'docker swarm join-token manager' 并按照指南操作。
运行一个简单的 Docker 服务,使用基于 alpine 的文件系统,并隔离对 8.8.8.8 的 ping:
consoledocker service create --name demo alpine:latest ping 8.8.8.8
检查您的服务是否创建了一个运行中的容器:
consoledocker service ps demo
您应该看到类似以下内容:
shellID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS 463j2s3y4b5o demo.1 alpine:latest docker-desktop Running Running 8 seconds ago
检查您是否获得预期的 ping 过程日志:
consoledocker service logs demo
您应该看到健康 ping 过程的输出:
shelldemo.1.463j2s3y4b5o@docker-desktop | PING 8.8.8.8 (8.8.8.8): 56 data bytes demo.1.463j2s3y4b5o@docker-desktop | 64 bytes from 8.8.8.8: seq=0 ttl=37 time=13.005 ms demo.1.463j2s3y4b5o@docker-desktop | 64 bytes from 8.8.8.8: seq=1 ttl=37 time=13.847 ms demo.1.463j2s3y4b5o@docker-desktop | 64 bytes from 8.8.8.8: seq=2 ttl=37 time=41.296 ms ...
最后,拆除您的测试服务:
consoledocker service rm demo
结论
到目前为止,您已经确认了您可以在 Kubernetes 和 Swarm 中运行简单的容器化工作负载。下一步是编写一个描述如何运行和管理这些容器的 YAML 文件。
CLI 参考
本文中使用的所有 CLI 命令的更多文档在此处可用: