当了解Docker、Google Cloud和Kubernetes时,我发现这些产品似乎有重叠之处,但它们又不兼容。
例如,docker-compose.yml
文件需要重新编写以便将应用程序部署到Kubernetes上。
能否提供一个高层次、粗略的描述,阐述Docker、Docker Compose、Docker Cloud和Kubernetes之间的重叠点以及它们彼此之间的依赖关系?
当了解Docker、Google Cloud和Kubernetes时,我发现这些产品似乎有重叠之处,但它们又不兼容。
例如,docker-compose.yml
文件需要重新编写以便将应用程序部署到Kubernetes上。
能否提供一个高层次、粗略的描述,阐述Docker、Docker Compose、Docker Cloud和Kubernetes之间的重叠点以及它们彼此之间的依赖关系?
容器:
docker
是一个命令行工具,用于管理图像、容器、卷和网络除了@yamenk的回答,我想在这里补充一些细节,这些细节可能会帮助人们更好地理解Kubernetes。
docker-compose
: 是一个工具,它接受一个描述你的多容器应用程序的YAML文件,并帮助你创建、启动/停止、删除所有这些容器,而不需要为每个容器输入多个docker...
命令。Kubernetes
: 是一个用于管理容器化工作负载和服务的平台,它促进了声明性配置和自动化。 什么是 Kubernetes? 继续阅读...(来自文档): Compose是一个用于定义和运行多容器Docker应用程序的工具。使用Compose,您可以使用YAML文件配置应用程序的服务。然后,使用单个命令,您可以从配置中创建并启动所有服务。 Compose具有管理应用程序整个生命周期的命令:
- 开始、停止和重建服务
- 查看正在运行的服务的状态
- 流式传输运行服务的日志输出
- 在服务上运行一次性命令
(来自《Kubernetes入门》):Kubernetes是一款容器编排工具,类似于Docker Swarm、Mesos Marathon、Amazon ECS和Hashicorp Nomad。容器编排工具可以将主机组合成集群,并帮助我们确保应用程序:
- 容错性强,
- 可以按需扩展并实现自动化,
- 能够充分利用资源,
- 可以自动发现其他应用程序并进行通信,
- 可从外部访问,
- 可以在没有任何停机时间的情况下更新/回滚。
许多人认为学习Kubernetes很难,这是因为它解决了一系列问题,而人们尝试在不知道所有先决条件的情况下理解它,这使得它变得复杂。通过阅读以下概念/术语的内容,开始将谜题的碎片拼凑在一起,这个过程将帮助您理解Kubernetes试图解决的问题类型:
由于容器及其管理周围有许多不同的事物,请密切关注云原生领域:
交互式版本请参见:landscape.cncf.io/
2020年5月:Docker Compose规范现已成为开放标准
与AWS、Microsoft和其他开源社区合作,我们扩展了Compose规范以支持云本地平台,如Kubernetes和Amazon ECS,除了现有的Compose平台。详情请参见:blog / compose-spec.io
docker stack deploy --orchestrator=kubernetes
... https://docs.docker.com/engine/reference/commandline/stack_deploy/ - OneCricketeer如果你需要在同一主机内对容器进行网络连接,请选择Docker Compose。
如果你需要在多个主机之间对容器进行网络连接,请选择Kubernetes。
Kubernetes中的节点
等同于云服务器、PC或笔记本电脑上的主机
吗? - Denis Turgenev首先,区分容器引擎和容器编排工具。
Docker
是一种容器引擎,通常仅用于在本地PC上为开发目的构建和运行不超过一个容器。
Docker-compose
是 Docker 实用程序,可运行多个容器,并通过 docker 引擎功能共享卷和网络,可以本地运行以模拟服务组合,也可以在集群上远程运行。
Kubernetes 是一种容器编排平台,它负责运行容器并增强引擎功能,使容器可以组合和扩展以提供复杂的应用程序(类似 PaaS,由您或云提供商管理)。 Kubernetes 的主要功能是使用容器将基础设施与应用程序解耦,并且它也对 Docker 之外的其他引擎开放,例如可以使用 rkt 或 cri-o 运行容器。
Docker Cloud 也是一种 PaaS 提供,可通过 Docker
引擎 API 运行和编排容器。
现在根据您的需求,对基础设施的控制级别和目标受众,可以使用裸金属上的 Kubernetes,还是 Azure ACS 或 Google GKE 等...
希望这有所帮助 :) 敬礼