【发布时间】:2017-01-20 07:12:17
【问题描述】:
我有几个 compose 文件 (docker-compose.yml) 描述了一个简单的 Django 应用程序(五个容器,三个图像)。
我想在生产环境中运行这个堆栈 - 让整个堆栈在启动时开始,并让容器在崩溃时重新启动或重新创建。没有我关心的卷,容器不会保存任何重要状态,可以随意回收。
我还没有找到很多关于以这种方式在生产中使用 docker-compose 的信息。 The documentation 很有帮助,但没有提及任何关于启动时的内容,而且我使用的是 Amazon Linux,因此(当前)无法访问 Docker Machine。我习惯于使用 supervisord 来管理进程并确保它们在启动时启动,但我认为这不是使用 Docker 容器的方法,因为它们最终会受到 Docker 守护进程的监督?
作为一个简单的开始,我想将restart: always 放在我所有的服务上,并制作一个初始化脚本来在启动时执行docker-compose up -d。是否有推荐的方法来以稳健的方式管理生产中的 docker-compose 堆栈?
编辑:我正在寻找一种“简单”的方式来以稳健的方式为我的容器堆栈运行相当于 docker-compose up 的方式。我预先知道堆栈中声明的所有容器都可以驻留在同一台机器上;在这种情况下,我不需要跨多个实例编排来自同一堆栈的容器,但这也有助于了解。
【问题讨论】:
-
所以您不一定想要一个成熟的编排器,而是需要某种单一服务器的东西来确保
docker compose up保持正常运行?像 docker compose 的 monit 之类的? -
@TimoLehto 我以前从未遇到过 monit,但乍一看,我会说 'monit for docker compose' 将非常接近我正在寻找的东西 - 让所有东西在启动时启动并运行,并在容器失败时重启容器(在合理范围内)
标签: docker docker-compose devops