将s3fs挂载为Docker卷

thm*_*spl 1 amazon-s3 amazon-web-services s3fs docker

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

所以我最后尝试过的命令是statet命令(s3fs 无法安装在docker容器内吗?):

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
Run Code Online (Sandbox Code Playgroud)

它工作得很好,但是如果我现在退出bash,容器将停止,并且我无法执行任何操作。是否可以保留此东西并将其添加为卷?

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

thm*_*spl 9

我做到了!

配置如下所示:

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
Run Code Online (Sandbox Code Playgroud)

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

docker-compose.yml

linux:
  image: {IMAGE}
  volumes:
    - s3data:/data
Run Code Online (Sandbox Code Playgroud)

希望以后对您有所帮助!

干杯。

  • 惊人的!s3vol 太棒了!但我认为我有一个问题,s3vol 将从 s3 下载文件并复制到服务器磁盘。但我的 aws s3 存储桶大小大约超过 10 tera 字节。我想在多个服务器上使用 s3vol。我的多个服务器必须每个安装的磁盘都超过 10 TB?我担心大尺寸 s3 的成本和时间。 (2认同)