我有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
通常,仅数据容器必须存在但不必继续运行。所以我不确定现在要面对什么。保持容器运行只是一个修补程序,但不是解决方案。
由于仅数据容器不是最佳解决方案,因为在部署时它被视为垃圾 - 我考虑使用其他可以引用的持久存储。但我不确定这一点。
答案 0 :(得分:1)
这有点像hacky,但AWS技术建议我把它放在Dockerfile的底部:
CMD ["/bin/sh", "-c", "while true; do sleep 1; done"]
这将使您的仅数据卷容器保持运行,以便ECS满意。
答案 1 :(得分:0)
我假设数据容器格式化数据并生成其他容器使用的输出。
如果在数据和其他容器之间定义了docker链接,则必须同时运行这两个容器。
如果数据容器只是临时的,我建议为数据容器定义一个docker数据卷并将数据写入卷。
数据卷由Engine守护程序主机的目录支持,然后可以将相同位置作为卷加载到可以使用该位置可用数据的其他容器中。
定义卷时,请确保您可以根据容器功能分配适当的RW权限。