2

我有 4 个 docker 容器,其中 2 个继续运行 - nginx 和 hhvm。但此外,我还有 2 个不会永久运行的纯数据容器。除非您尝试将它们转发到 AWS ECS,否则这非常有效。

09c4fc12-b63a-48a9-baba-ebcb67191cf0/data   STOPPED ExitCode: 0         ecscompose-docker:9
09c4fc12-b63a-48a9-baba-ebcb67191cf0/hhvm   STOPPED                     ecscompose-docker:9
09c4fc12-b63a-48a9-baba-ebcb67191cf0/nginx  STOPPED                     ecscompose-docker:9
09c4fc12-b63a-48a9-baba-ebcb67191cf0/data2  STOPPED ExitCode: 0         ecscompose-docker:9

一般来说,纯数据容器只需要存在,但不必继续运行。所以我不确定现在要面对什么。保持容器运行只是一个修补程序,而不是解决方案。

由于仅数据容器不是最佳解决方案,因为在部署它时它被视为垃圾 - 我考虑使用其他一些可以引用的持久存储。但我不确定这一点。

4

2 回答 2

1

这有点骇人听闻,但 AWS 技术人员建议我将其放在 Dockerfile 的底部:

CMD ["/bin/sh", "-c", "while true; do sleep 1; done"]

这将使您的仅数据卷容器保持运行,以便 ECS 满意。

于 2017-05-03T20:48:58.327 回答
0

我假设数据容器格式化数据并生成由其他容器使用的输出。

如果在数据和其他容器之间定义了 docker 链接,您将必须运行这两个容器。

如果数据容器只是临时的,我建议为数据容器定义一个 docker 数据卷并将数据写入该卷。

数据卷由引擎守护程序主机的目录支持,然后可以将相同的位置作为卷加载到其他容器中,这些容器可以使用该位置可用的数据。

定义卷时,请确保您可以根据容器功能分配适当的 RW 权限。

于 2016-05-13T19:32:23.183 回答