首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何挂载运行在三节点docker-swarm集群上的python flask应用程序的通用sqlite数据库文件?

如何挂载运行在三节点docker-swarm集群上的python flask应用程序的通用sqlite数据库文件?
EN

Stack Overflow用户
提问于 2019-03-31 08:10:09
回答 1查看 993关注 0票数 0

我有一个python flask REST应用程序,它在部署时会创建一个.db sqlite数据库文件。此应用程序现在部署在三个节点的docker swarm集群上。我使用swarm-stack文件在这些节点上部署容器。我的问题是现在每个容器都有自己的.db文件,即应用程序的每个实例都有一个单独的数据库。我希望这个db文件有一个公共的挂载点,这样每个服务都可以访问一个公共的数据库。我如何实现这一点?我是新来码头的。

EN

回答 1

Stack Overflow用户

发布于 2019-03-31 12:03:27

跨整个节点/机器共享文件不是Docker直接为您解决的问题,但您可以在shared storage systems环境中查看Docker存储驱动程序。这有助于它与NFS、ZFS等解决方案集成。

但是,您提到您正在使用SQLite和Flask,使用的是SQLAlchemy驱动程序。为了节省您的麻烦,而不是尝试跨三个节点共享一个文件系统,您应该使用数据库服务器,如MySQLMariaDBPostgreSQL (仅举几例),所有这些服务器都可以很好地与SQLAlchemy配合使用。这样,而不是试图与您的Flask应用程序的所有运行实例共享相同的SQLite文件(这将非常频繁/快速地锁定/降级),您可以让所有的Flask容器连接到相同的数据库容器。

这个额外的数据库可以很容易地在容器中运行,也可以由docker-compose管理。这样,只有一个节点需要访问文件系统来存储数据库的数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55436760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档