使用主管启动多个 Docker 容器

Launching multiple Docker containers with supervisor

我有一些 Docker 个容器,我想开始使用 supervisor。我遇到的问题是主管要求命令被阻止以跟踪它们。

不幸的是,命令 docker run my/container:tag 是非阻塞的,即它 returns 立即生成一个进程。

docker 容器启动(实际上是 2 个,有时是 4 个可能相关的实例),但主管指示错误 "FATAL Exited too quickly (process log may have details)"。

supervisor 可以用于 运行 Docker 容器吗?

更新

我在一些较早的试验中也启用了 -d 选项,这导致 -i 无法按预期工作(它们不是相反,它们不应该提示某种错误吗? ).当我 运行 在我的 supervisor.conf 中使用 -i 时,我得到这个错误 time="2015-06-27T14:14:29+10:00" level=fatal msg="cannot enable tty mode on non tty input".

我也尝试过在没有 -i 的情况下 运行,它成功地启动了 docker 容器。不幸的是 sudo supervisorctl stop app 实际上并没有停止 docker 容器。主管无法控制 docker 还是我真的需要使用 -i 选项 运行 并以某种方式修复此 tty 错误?

更新 2

tty 错误来自于我的 docker run 命令中也有 -t 选项。我删除了它。但是,supervisorctl还是挡不住docker运行。虽然当 运行ning 和 supervisorctl status app 说它已经停止时它没有给出错误 docker ps 我看到容器实际上仍然是 运行ning.

如果您 运行 您的容器带有 -i option,它将阻塞

docker run -i my/container:tag

您需要 运行 容器处于交互模式。这将是阻塞调用,如果您一直阻塞直到新进程退出,那么以下是正确的命令:

docker run -i -t my/container:tag