结合厨师和 Docker

Combining Chef And Docker

我很难弄清楚我应该如何结合 Chef 和 Docker 来充分利用它们。

现在我正在使用 Chef 自动拉取一个 docker 图像并创建一个容器。 但是当我想更改容器内的配置时,事情变得一团糟。

我读到了有关 knife container 的内容,但我不明白如何 bootstrap 一个容器和一个新的虚拟机(例如在亚马逊上)。

我建议,如果您想做的只是管理 Docker images/containers,那么您实际上并不需要 Chef。

Docker 提供如下工具:

  1. 图(http://www.fig.sh/),将多个容器作为一个逻辑单元提出来。
  2. Swarm (https://github.com/docker/swarm/),它允许您抽象出用于部署的机器。例如,"My app needs 2GB of RAM, 1 CPU, 10GB of HD, which machine has available resources?"
  3. 机器 (https://github.com/docker/machine),它允许您在几乎任何提供商的云中创建虚拟机。
  4. A REST API (https://docs.docker.com/reference/api/docker_remote_api/),允许您远程 start/stop 容器等

在我看来,这些工具套件取代了对 Chef 的需求 if 如果您要做的只是管理 Docker 图像和容器。

正如有人已经指出的那样,不要在容器启动后更改配置。最好制作一个新图像或重新启动容器。您还可以将配置挂载到容器外部并在那里修改它们,然后重新启动容器。