在我看来,这两个工具都可用于轻松安装和自动配置应用程序。
但是,我限制使用Docker并且根本没有使用Ansible。所以我有点困惑。
每当我搜索这两种技术之间的比较时,我会找到有关如何组合使用这些技术的详细信息。
答案 0 :(得分:36)
大多数文章都谈到将它们一起使用的原因有很多。
将Ansible视为安装和配置计算机的一种方式,您可以在此处返回并调整该安装和配置的任何单个步骤。然后,您可以根据自己的需要将该概念扩展到许多计算机。
Ansible具有优势的一个关键区别是,它不仅可以管理机器的内部,还可以管理机器周围的其他系统,如网络,DNS,监控等。
通过Ansible构建许多机器所花费的时间与制作1机器相当,因为所有50台机器都将逐步创建。如果您正在跨多个环境运行滚动部署,那么这将逐步构建,这需要花费时间。
现在想想Docker已经构建了这些单独的机器之一 - 安装和配置并准备好在可以使用docker系统的地方部署(这些日子几乎无处不在)。这里的缺点是你无法管理使docker容器实际工作所需的所有其他方面,如果你没有自动化,那么长期调整它们并不像听起来那么有趣配置(因此Ansible在这里有所帮助)。
与Ansible采用的分步方法相比,一旦您已经创建初始映像,从1到50台Docker机器进行缩放的速度非常快,而且在小型组中的许多机器的滚动部署期间这是最明显的。
每个人都有能力或速度方面的缺点。然而,将它们组合在一起它可以非常棒。毫无疑问,对于您已阅读过的大部分文章,我建议您使用Ansible创建(和更新)基础Docker容器,然后使用Ansible管理您需要满足的任何容器规模的推出您的应用程序使用情况。
答案 1 :(得分:-4)
它们是完全不同的东西。 Ansible用于自动配置和管理机器/容器,Docker是Linux的轻量级容器系统。