AWS EC2上Docker的持久存储解决scheme

我想在我的AWS EC2集群上部署节点红色服务器。 我得到了docker形象,运行没有问题。 节点红将用户stream存储在名为/ data的文件夹中。 现在当容器被销毁时,数据就会丢失。 我有红色几个解决scheme,您可以将本地文件夹安装到一个卷。 什么是处理AWS EC2中的持久数据的好方法?

我最初的想法是在任务定义中使用S3卷或装入卷。

可以使用支持映射EBS卷的docker的卷驱动程序插件 。

Flocker是第一批产品经理之一,它支持EBS并且已经发展到支持许多不同的后端。

Cloudstor是Dockers卷插件(它附带Docker for AWS / Azure)。

Blocker是EBS唯一的卷驱动程序。

S3对所有的文件系统操作都不能很好地工作,因为你不能更新一个对象的一部分,所以更新一个文件的一个字节意味着你必须再次写整个对象。 这也不是立即一致的,所以一个写然后阅读可能会给你古怪的结果。

EBS卷只能连接到一个实例,这意味着您只能在一个EC2实例中运行Docker容器。 假设您将来希望在ECS群集中运行许多容器时扩展您的解决scheme,那么您需要查看EFS。 这是来自AWS的共享系统。 唯一的问题是EFS在EBS上的性能下降。

最简单的方法是使用-v / path / to / host_folder:/ path / to / container_folder选项运行你的docker ,这样容器就会引用主机文件夹,并且信息会在重启后保留重build。 这里是关于docker系统的详细信息。

我会使用AWS EFS。 这就像一个NAS,你可以同时安装到多个实例。

如果您使用ECS作为您的docker主机,以下指南可能会有帮助http://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_efs.html