19

我有一个带有一个管理器和另一个普通节点的群集群,当我创建一个群服务时,我正在使用挂载类型、挂载源和挂载目标创建。它在管理器和节点中创建具有相同名称的卷并启动容器并且我的服务已启动。

当我发布服务时,与服务一起创建的卷没有被删除,这仍然很好。

我面临的问题是,当我删除具有相同端点的卷时,它只是删除了集群管理器中的卷,创建服务时在节点中创建的卷仍然存在。

我希望经理删除与 swarm 服务一起创建的所有卷。有办法吗??

4

2 回答 2

9

经过这么多的分析,这里是理论。

如果您指示 swarm 使用卷创建服务,则 Swarm 仅在集群内(即在多个节点上)创建服务时执行操作在释放 docker 中的错误时无法检查工作节点是否存在卷

我已经为此在 docker 中提出了错误。

到目前为止,除了在释放 swarm 服务后手动从工作节点释放卷之外,别无他法。

于 2017-10-12T03:44:31.783 回答
3

据我所知,仅在创建容器的节点上创建卷。您的服务是否有可能无法在一个节点上启动,在另一个节点上结束并且不知何故 swarm 没有清理?如果是这样的话,请在 github 中写一个问题。

更新(来自评论):

根据docker 服务创建文档

命名卷是一种机制,用于将容器所需的持久数据与用于创建容器的映像和主机解耦。命名卷由 Docker 创建和管理,即使当前没有容器在使用命名卷,它也会持续存在。命名卷中的数据可以在容器和主机之间共享,也可以在多个容器之间共享。Docker 使用卷驱动程序来创建、管理和挂载卷。您可以使用 Docker 命令备份或恢复卷。

因此,如果您使用命名卷,正确的答案是为什么它们会在管理器上被删除以及它们在那里创建的位置?

于 2017-10-12T06:28:08.077 回答