AWS EC2上Docker的持久存储解决方案

时间:2017-10-10 07:40:53

标签: docker amazon-s3 amazon-ec2

我想在我的AWS EC2集群上部署节点红色服务器。我得到了docker图像,没有问题。 Node-red将用户流存储在名为/ data的文件夹中。现在,当容器被销毁时,数据将丢失。关于可以将本地文件夹安装到卷中的几种解决方案,我有所了解。 在AWS EC2中处理持久数据的好方法是什么?

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

4 个答案:

答案 0 :(得分:6)

可以使用支持映射EBS卷的docker volume driver plugin

Flocker是最早的批量管理者之一,它支持EBS并且已经发展为支持许多不同的后端。

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

Blocker是仅限EBS的音量驱动程序。

S3并不适用于所有文件系统操作,因为您无法更新对象的某个部分,因此更新文件的1个字节意味着您必须再次编写整个对象。它也不会立即保持一致,所以写入然后读取可能会给你奇数/旧结果。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

最简单的方法(以及最常用的方法)是使用 -v / path / to / host_folder:/ path / to / container_folder 选项运行您的docker,因此容器将引用主机文件夹在重新启动或重新创建信息后,信息将保留。 Here有关docker volume system的详细信息。

答案 3 :(得分:0)

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

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