docker共享卷与glusterfs

我想在Swarm模式下testingdocker。

我创build了3个Ubuntu服务器虚拟机。
在每个VM上我都安装了docker。

我想要完成的下一步是共享3个docker节点中的/ var / lib / docker / volumes文件夹。
我尝试的第一个解决scheme是将/ var / lib / docker / volumes挂载为远程sshfs卷。 我失败了,因为当docker服务启动时,执行命令chown/ var / lib / docker / volumes上 ,失败。

然后我尝试使用glusterfs ,我成功地将glusterconfiguration为在3个节点上共享相同的文件夹(现在,如果我在第一个节点上的/ var / lib / docker /卷中创build了一个文件,我也可以看到新文件其他2个节点)。

然后,我开始第一个节点上的docker没有任何问题。 但是,如果我尝试启动第二个节点上的泊坞窗,我得到了错误:

启动守护程序时出错:打开卷存储元数据库时出错:超时

我假设这个错误是因为第一个节点获取了文件/var/lib/doceker/meradata.db上的锁

我怎么解决这个问题? 有没有替代品使用glusterfs共享docker卷文件夹?

谢谢

你根本不应该共享这个目录。 这可能会导致数据损坏。 正如你已经configuration了glusterfs,你可以用-v /path/to/gluster/mount:/path/in/container标志添加到docker run中,将gluster dir挂载到容器中。 然后写入容器中的path的文件将在gluster节点之间共享。 其他选项是使用一些专用卷驱动程序。 尝试在您最喜爱的search引擎中search“docker卷驱动程序”。