Docker容器和Ansible Playbook之间有什么区别?

33

在我看来,这两个工具都用于轻松安装和自动配置应用程序。

然而,我对 Docker 的使用有限,而且根本没有使用过 Ansible。所以我有点困惑。

每当我搜索这两种技术之间的比较时,我都会发现关于如何将这些技术结合使用的详细信息。

2个回答

36

大多数文章都提到了将Ansible和Docker一起使用的许多原因。

将Ansible视为安装和配置计算机的方式,您可以在未来返回并调整该安装和配置的任何单个步骤,然后将该概念扩展到您能够管理的许多计算机。

Ansible具有优势的一个关键区别在于它不仅可以管理机器的内部,还可以管理其他系统,例如围绕机器的网络、DNS、监控等。

通过Ansible构建多台计算机所需的时间几乎与制作1台计算机所需的时间相同,因为所有50台计算机都将逐步创建。如果要在多个环境之间运行滚动部署,则这个逐步构建过程需要花费时间。

现在想象一下Docker已经构建了其中一台独立的计算机-安装并配置好,并准备在docker系统可用的任何地方部署(现在几乎无处不在)。这里的缺点是您不能管理使docker容器正常工作所需的所有其他方面,如果您没有自动化配置,则长期调整它们并不像听起来那么有趣(因此在这里使用Ansible有帮助)。

一旦创建了初始镜像,从1个到50个Docker计算机的扩展速度比Ansible采取逐步方法要快得多,这在小组滚动部署中尤为明显。

每种方法都有其能力或速度上的缺点。但将它们结合起来可以非常棒。毫无疑问,与您已经阅读过的大多数文章一样,我建议使用Ansible创建(和更新)您的基础Docker容器,然后使用Ansible来管理您需要满足应用程序使用的任何规模的容器的推出。


1
你是不是想说这里使用Docker?:“...然后使用Ansible来管理推出...”。如果不是,请解释一下如何使用Ansible来管理任何规模的推出?谢谢。 - NeverEndingQueue
1
你不能管理制作Docker容器所需的所有其他方面,如果您没有自动化配置,则长期调整它们并不像听起来那么有趣(因此Ansible在这里有帮助)。因此,Kubernetes(用于管理容器化工作负载和服务的平台,可促进声明性配置和自动化)也可以在这里使用。 https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/ - Manojkumar Khotele

-4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接