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

What is the difference between a Docker Container and an Ansible Playbook?

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

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

每当我搜索这两种技术之间的比较时,我都会找到有关如何组合使用这些技术的详细信息。

它们是完全不同的东西。 Ansible 用于自动配置和管理 machines/containers,Docker 是 Linux 的轻量级容器系统。

http://www.ansible.com/home

https://www.docker.com/

大多数文章都谈到一起使用它们的原因有很多。

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

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

通过 Ansible 构建多台机器所花费的时间与制造 50 台机器和制造 1 台机器所花费的时间差不多,因为所有 50 台机器都将逐步创建。如果您是 运行 跨多个环境的滚动部署,那么这个逐步构建会占用时间。

现在将 Docker 视为已经构建了其中一台单独的机器 - 安装和配置并准备好部署到 docker 系统可用的任何地方(如今几乎无处不在)。这里的缺点是您无法管理使 docker 容器实际工作所需的所有其他方面,并且如果您没有自动化配置,长期调整它们并不像听起来那么有趣(因此 Ansible 在这里提供帮助)。

从 1 台扩展到 50 台 Docker 台机器 一旦您已经创建了初始映像,与 Ansible 采用的逐步方法相比,速度快得令人眼花缭乱,这在许多机器的滚动部署中最为明显在较小的组中。

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