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