Docker Swarm如何实现卷共享?

Docker Swarm可以pipe理两种types的存储:卷和绑定。 尽pipeDocker文档并不build议使用绑定,因为它在本地目录(在每个swarm节点上)与任务之间创build绑定,但未提及卷方法的实现,所以我不明白卷之间如何共享任务。

Docker Swarm如何在节点之间共享卷? 卷的保存位置(在经理上,如果有多个pipe理?)?

如果在不同的networking上运行不同的机器,节点之间没有问题? 它创build一个VPN吗?

你问的是一个常见的问题。 卷数据和该卷可以执行的function由卷驱动程序pipe理。 就像您可以使用不同的networking驱动程序,如overlaybridgehost ,您可以使用不同的音量驱动程序。

Docker和Swarm只能使用标准的local驱动程序。 它对Swarm没有任何意识,它只会为您的数据创build新的卷,无论您的服务任务安排在哪个节点上。 这通常不是你想要的。

您需要一个Swarm可识别的第三方驱动程序插件,并确保您在正确的时间在正确的节点上为服务任务创build的卷。 选项包括使用“Docker for AWS / Azure”及其包含的CloudStor驱动程序或stream行的开源REX-Ray解决scheme。

有很多第三方的卷驱动,你可以在Docker商店find。