【问题标题】:Persistent storage solution for Docker on AWS EC2AWS EC2 上的 Docker 持久存储解决方案
【发布时间】:2018-03-21 12:43:47
【问题描述】:

我想在我的 AWS EC2 集群上部署一个节点红色服务器。我让 docker 映像启动并运行没有问题。 Node-red 将用户流存储在名为 /data 的文件夹中。现在,当容器被破坏时,数据就会丢失。我有几个解决方案可以将本地文件夹挂载到卷中。 在 AWS EC2 中处理持久数据的好方法是什么?

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

【问题讨论】:

    标签: docker amazon-s3 amazon-ec2


    【解决方案1】:

    可以将volume driver plugin 与支持映射 EBS 卷的 docker 一起使用。

    Flocker 是最早的卷管理器之一,它支持 EBS,并且已经发展到支持许多不同的后端。

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

    Blocker 是仅 EBS 的卷驱动程序。

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

    【讨论】:

    • 我正在尝试测试 Cloudstor,但我无法在本地计算机上安装它。我使用:“docker 插件安装 cloudtor”。结果是:“来自守护程序的错误响应:cloudstor 的拉取访问被拒绝,存储库不存在或可能需要'docker login'”。所以我尝试使用 aws 登录并重新运行 cmd 但结果相同。如何安装?
    • 你试过安装Docker for AWS吗?
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      最简单的方法(也是最常用的方法)是使用 -v /path/to/host_folder:/path/to/container_folder 选项运行 docker,因此容器将引用主机文件夹并且信息将在重新启动或重新创建后保留。 Heredocker 卷系统的详细信息。

      【讨论】:

        【解决方案4】:

        我会使用 AWS EFS。它就像一个 NAS,您可以将它同时挂载到多个实例。

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

        【讨论】:

          猜你喜欢
          • 2017-12-18
          • 2020-02-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-01-07
          • 1970-01-01
          • 2018-09-17
          • 2012-05-30
          相关资源
          最近更新 更多