【问题标题】:docker share volumes with glusterfsdocker 与 glusterfs 共享卷
【发布时间】:2018-05-21 21:58:56
【问题描述】:

我想在 Swarm 模式下测试 docker。

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

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

然后我尝试使用 glusterfs,我成功将 gluster 配置为在 3 个节点上共享同一个文件夹(现在如果我在 /var/lib/docker/volumes 在第一个节点上,我也可以在其他 2 个节点上看到新文件)。

然后我在第一个节点上启动 docker 没有任何问题。但是,如果我尝试在第二个节点上启动 docker,则会收到错误消息:

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

我认为错误是因为第一个节点获得了文件 /var/lib/doceker/meradata.db

上的锁

我该如何解决这个问题? 是否可以使用 glusterfs 共享 docker 卷文件夹?

谢谢

【问题讨论】:

    标签: docker docker-swarm glusterfs


    【解决方案1】:

    您根本不应该共享此目录。它可能会导致数据损坏。由于您已经配置了 glusterfs,您可以将 gluster 目录安装到容器中,并将 -v /path/to/gluster/mount:/path/in/container 标志添加到 docker run。然后写入容器中路径的文件将在 gluster 节点之间共享。其他选择是为此使用一些专用的卷驱动程序。尝试在您喜欢的搜索引擎中搜索“docker volumes drivers”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多