【问题标题】:Mount s3fs as docker volume将 s3fs 挂载为 docker 卷
【发布时间】:2019-10-04 14:53:08
【问题描述】:

所以我只想将我的 s3 存储桶从亚马逊添加到我的 docker swarm。我在互联网上看到了许多“可能”的解决方案,但我无法连接它们以将我的存储桶的内容添加为卷。

所以我尝试的最后一件事是这里的命令声明 (Is s3fs not able to mount inside docker container?):

docker run --rm -t -i --privileged -e AWS_ACCESS_KEY_ID=XXXX -e AWS_SECRET_ACCESS_KEY=XXXX -e AWS_STORAGE_BUCKET_NAME=XXXX docker.io/panubo/s3fs bash

它工作得很好,但是如果我现在退出 bash,容器就会停止,我不能用它做任何事情。有没有可能让这个东西留下来并作为一个卷添加?

或者,如果我只是将存储桶安装在我的 Docker 实例上,然后将其添加为本地卷,这会是更好的解决方案吗?这会是更好的主意吗?

【问题讨论】:

    标签: amazon-web-services docker amazon-s3 s3fs


    【解决方案1】:

    我成功了!

    配置如下:

    docker-compose.yml

    volumes:
      s3data:
        driver: local
    
    services:
      s3vol:
        image: elementar/s3-volume
        command: /data s3://{BUCKET NAME}
        environment:
          - BACKUP_INTERVAL={INTERVALL IN MINUTES (2m)}
          - AWS_ACCESS_KEY_ID={KEY}
          - AWS_SECRET_ACCESS_KEY={SECRET}
        volumes:
          - s3data:/data
    

    将其插入 docker-compose 文件后,您可以将 s3 存储用作卷。像这样:

    docker-compose.yml

    linux:
      image: {IMAGE}
      volumes:
        - s3data:/data
    

    希望这对你们中的一些人有所帮助!

    干杯。

    【讨论】:

    • 太棒了! s3vol 很棒!但我认为我有一个问题,s3vol 将从 s3 下载文件并复制到服务器磁盘。但我的 aws s3 存储桶大小约为 10 TB 以上。我想在多台服务器上使用 s3vol。我的多台服务器必须每个安装的磁盘都超过 10 TB?我担心大 s3 尺寸的成本和时间。
    • elementar/s3-volume 旨在“运行与 S3 一起使用和持久存储数据的短期进程”。它特别适合将备份从 S3 同步到磁盘并将其还原到磁盘。事实上,对 Docker 卷的透明 S3 代理听起来也很有希望。
    • 如果存储桶未托管在 AWS 上,这是否有效?
    猜你喜欢
    • 2017-11-08
    • 2013-10-10
    • 2020-01-20
    • 2021-10-26
    • 2016-12-15
    • 2021-12-20
    • 2020-06-05
    • 2016-02-29
    相关资源
    最近更新 更多