AWS Lightsail 支持容器服务,具有部署 - 类似于 Docker Compose 结构。添加多个容器,指定环境变量和入口点,并选择添加公共 IP。
另外,Lightsail 还提供块设备存储。这些存储可以连接到 Lightsail 实例。
我一直找不到如何将持久存储添加到容器部署的方法。有什么好方法可以持久保存文件?
答案1
虽然 Docker 支持持久卷,Lightsail 支持运行 Docker 容器,但 Lightsail 不支持持久卷。这反映在其文档和容器定价中没有提及容器可用的磁盘空间量。此外,它们还提供了一个旋钮来增加或减少节点数(同时运行的容器的单独实例),这与 Docker 卷的典型实现不兼容,在 Docker 卷的典型实现中,假定卷的存储将是传统文件系统(通常不是 NFS 或其他网络文件系统)。
但是,还有其他方法可以保存文件。您无需尝试使用容器的文件系统,而是可以将它们保存在 Amazon S3 中。Amazon S3 提供了用于持久文件存储的 API,包括直接向公众提供这些文件的 URL(如果您有此要求)的能力。
类似地,如果您需要持久数据库,则可以使用 Amazon DynamoDB,或者如果您更喜欢与 MySQL 兼容的数据库,则可以使用 Amazon RDS。
这意味着亚马逊的 Lightsail 容器设计主要面向托管应用程序(例如 Node.js 应用程序),这些应用程序能够与其他亚马逊基础设施通信以满足其数据持久性需求。如果您需要持久性并希望在亚马逊上运行 Dockerized 应用程序,您最好研究通过 Kubernetes 容器存储接口 (CSI) 支持持久卷的 Amazon EKS。