资讯专栏INFORMATION COLUMN

在 Docker 中 不使用 NFS 或 gluster 的持久化分布式文件系统解决方案

Yumenokanata / 2570人阅读

摘要:你仅仅需要在每个虚拟服务上运行一个容器,你可以通过使用命令来绑定容器的卷来运行许多容器,你的所有的容器都可以通过这样的方式在本地和通过系统来共享他们的短暂的数据。

  

注:该文的作者为 Lucas Carlson ,本文的原文

在云上处理上传的内容

在云上运行 CMS 或者 blog 最困难的一部分是文件系统持久化。如果你以前已经在 Docker 或者是其他的 PaaS 平台上运行过 WordPress 或者是 Drupal,那你肯定知道我正在谈论的。每个容器或者是 dyno 是短暂的(当容器消失的时候,随着消失)并且当 dyno 消失的时候,所有你上传的内容也消失了。

使用 NFS 或者 GLUSTER 同步 DOCKER

你不是非常轻易的使用 NFS 或者 GLUSTER,下面是教程,并且甚至在索引中的一些容器说他们管用,但是在最新版的 Docker 中,我不能使用它们中的任何一个,

即使理论上你能在 Docker 中运行 NFS 或者是 GLUSTER,但是你真的想这样做?这些技术没有问题?是否需要 kernel 补丁 或者 开放TCP 端口,这是一回事,这绝不容易。

如果你可以使用一个不需要打内核补丁或者是开放 TCP 端口的同步技术,那是不是非常的棒?像 Dropbox,但是没有中央服务器,因此不不用担心你的代码被损坏。

使用 BITTORRENT SYNC 同步 Docker

尽管 BitTorrent Sync 不是开源的,但是它是没有成本的,并且在没有中央服务器的情况下工作的非常好

一个新的开源的项目 Syncthing 是 BitTorrent Sync 的替代方案,但是因为它还不是稳定版本,我们将给你演示当它变成稳定版本的时候我们怎么使用它。

这里是你怎样把 syncing 加入你的 Docker app:

# Server 1
$ docker run -d --name btsync ctlc/btsync 
90ecd4
$ docker logs 90ecd4
Starting btsync with secret: A645YG2WBR4DJI7J67ZK2EKD7XT44SYJ6
$ docker run -i -t --volumes-from btsync ubuntu bash
root@2ff9f0194ac0:/# ls /data/
root@2ff9f0194ac0:/# touch /data/hello_world
root@2ff9f0194ac0:/# ls /data/
hello_world

在另外一台电脑,你可以通过你第一个示例的秘钥来运行 ctlc/btsync 容器。

# Server 2
$ docker run -d --name btsync-client ctlc/btsync A645YG2WBR4DJI7J67ZK2EKD7XT44SYJ6
16e0e4
$ docker logs 16e0e4
Starting btsync with secret: A645YG2WBR4DJI7J67ZK2EKD7XT44SYJ6
$ docker run -i -t --volumes-from btsync-client ubuntu bash
root@3053efa3c41f:/# ls /data/
hello_world

你仅仅需要在每个虚拟服务上运行一个 ctlc/btsync 容器,你可以通过使用 --volume-from 命令来绑定容器的卷来运行许多容器,你的所有的容器都可以通过这样的方式在本地和通过系统来共享他们的短暂的数据。

总结

如果你组合 BitTorrent Sync 和 Docker,你可以不通过调试 NFS 或者是同一个 rsync 方案拼凑来创建一个有效而又强大的方案解决文件系统的持久化问题。

纯数据卷对于单机来说是一个非常棒的文件系统分享解决方案,但是当你想构建多主机应用时,使用如上的解决方案是一个简洁的可扩展方案。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/28102.html

相关文章

  • 容器化管理平台存储那点事

    摘要:机器配置主机名地址说明存储节点存储节点测试挂载的机器格式化和挂载磁盘主要目的就是将磁盘格式化为,作为的底层存储文件系统个节点都需要执行注意这个示例是以作为数据磁盘。 以 Docker 为代表的容器技术在云计算领域正扮演着越来越重要的角色,甚至一度被认为是虚拟化技术的替代品。企业级的容器应用常常需要将重要的数据持久化,方便在不同容器间共享。为了能够持久化数据以及共享容器间的数据,Dock...

    xcold 评论0 收藏0
  • Longhorn全解析及快速入门指南

    摘要:项目现已正式发布这是一个基于云和容器部署的分布式块存储新方式。这可能是与大多数现有的分布式存储系统相比,最具特色的功能。快速入门指南易于安装和使用。使用或术语,管理器容器是一项全球性服务。目前,我们不保留额外的元数据来指示使用哪些。 Longhorn项目现已正式发布!这是一个基于云和容器部署的分布式块存储新方式。Longhorn遵循微服务的原则,利用容器将小型独立组件构建为分布式块存储...

    张春雷 评论0 收藏0
  • 如何利用Docker构建基于DevOps全自动CI

    摘要:三私有代码库阿里云使用引言使用肯定离不开和代码的集成。本着代码可靠性,服务器稳定性,功能扩展性综合对比,我们选择使用阿里云的库。 来自用户的DevOps实践分享,分享从开发代码到生产环境部署的一条龙操作的实践及经验, 包含工具技术的选型及考量、私有代码库与私有镜像库的应用等。 (一)容器服务的Rancher选型 1、为什么说是下一代核心技术 从互联网的多次变革说起,早期的C/S架构,到...

    stormzhang 评论0 收藏0
  • 使用Convoy-NFS构建共享卷

    摘要:警告因为是的一个较新的服务,它只能在有限的几个位置上使用。现在你可以开始从视图中手动创建一个卷,或干脆创建一个使用和卷名的服务。我非常期待看到和中的共享卷会有什么下一步的发展。 如果你用过Docker你就会知道,共享卷和跨主机的数据访问是个非常棘手的问题。虽然Docker的生态系统在逐渐走向成熟,但对大多数人来说,在不同环境中实现持久化存储还是很麻烦的。幸运的是,Rancher一直在研...

    alin 评论0 收藏0
  • 微服务运行指南——For Cattle

    摘要:微服务基础层主要是为容器提供计算存储网络等基础资源。微服务访问层,目前服务对外暴露访问主要以绑定或是负载均衡方式。除此之外,内置的负载均衡是基于实现的,支持。私有云场景中,很多行业用户在内部都使用硬件负载均衡来暴露服务访问地址。 站在微服务的角度看容器的基础设施服务可以分为三层: 微服务基础层 微服务构建层 微服务访问层 showImg(https://segmentfault.c...

    wzyplus 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<