Docker群集故障转移

我有一个应用程序有2个容器:数据库和中间件。 我想用docker-compose将这个应用程序部署到一个docker swarm中。 我的应用程序中的每个容器取决于每个处理器适用的第三方许可证。 我想要做的就是将每个容器locking到我们为许可指定的swarm中的特定节点(也就是说,所有的数据库容器应该在一个节点上,所有的中间件容器应该在另一个节点上)。 我可以看到如何从文档中做到这一点,但我今天在这里的皱纹是,如果他们的首选服务器发生故障,我希望这些容器故障转移到另一个节点。 这是数据库容器在中间件节点上运行的唯一时间,反之亦然。 是否有可能在Docker 17.09-ce(此问题当前的最新版本)中完成此操作?