我有几个compose文件(docker-compose.yml)描述了一个简单的Django应用程序(五个容器,三个图像).
我想在生产中运行这个堆栈 – 让整个堆栈在启动时开始,并使容器重新启动或在它们崩溃时重新创建.没有我关心的任何卷,容器不会处于任何重要状态,可以随意回收.
我没有找到很多关于在生产中以这种方式使用docker-compose的信息. The documentation是有帮助的,但没有提到任何关于启动启动,我使用的是亚马逊Linux,所以不要(目前)可以访问Docker Machine.我习惯使用supervisord来监督进程并确保它们在启动时启动,但我不认为这是使用Docker容器的方法,因为它们最终会被Docker守护进程监控?
作为一个简单的开始,我想只是重新启动:总是在我的所有服务上,并使一个init脚本在启动时执行docker-compose up -d.是否有建议的方法以稳健的方式管理生产中的docker-compose堆栈?
编辑:我正在寻找一种“简单”的方式来运行相当于docker-compose up的容器堆栈.我事先知道堆栈中声明的所有容器都可以驻留在同一台机器上;在这种情况下,我不需要在多个实例中从同一堆栈中编排容器,但这也有助于了解.
当主机启动时,如果您在启动时启动了configured the Docker daemon,Docker将启动所有标记为重新启动的容器.所以你只需要运行docker-compose up -d一次,Docker负责其余的事情.
至于在Swarm中跨多个节点编排容器 – 首选方法是使用Distributed Application Bundles,但目前(从Docker 1.12开始)实验.您基本上将从代表您的分布式系统的本地Compose文件创建一个包,然后将其远程部署到Swarm. Docker移动速度很快,所以我希望很快就可以使用该功能.