如何将S3存储桶挂载为Docker容器中的一个点

98次阅读
没有评论

问题描述

想知道是否可以将一个S3存储桶作为Docker容器中的一个点进行挂载。他已经在本地机器上成功实现了这个功能。以下是一个JBoss Wildfly部署的示例。他想知道如何在这个示例中使用S3。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

是的,你可以在Docker中挂载S3存储桶。以下是一些示例和方法:
rexray示例
s3vol示例
使用卷插件可以附加许多其他内容
也适用于注册表

方案2

不,你不能直接将S3存储桶挂载为目录。因为S3是一个对象存储,通过HTTP或REST等方式访问。就像你不能将HTTP地址挂载为目录一样,你也不能将S3存储桶挂载为目录。但是,有一些解决方法可以将S3暴露为文件系统,例如’s3fs’项目。关于它们的可靠性和稳定性,我不太清楚。

方案3

实际上,你可以使用Fuse来实现。以下是一个示例:
S3FS-FUSE:这是一个免费的、开源的FUSE插件,支持主要的Linux发行版和MacOS。S3FS还会在本地缓存文件以提高性能。该插件将Amazon S3存储桶显示为系统上的一个驱动器。我还没有在AWS上使用过它,但我很快就会尝试。Azure Blob存储也有类似的解决方案,并且效果很好,所以我对此持乐观态度。

方案4

你可以使用Storage Gateway服务。它将为你提供一个NFS端点,然后可以使用Kubernetes卷来挂载它。我已经成功实现了这个功能。

请注意,以上解决方案可能会有版本差异,请根据你的具体情况选择适合的方法。

正文完