簡體   English   中英

如何為三節點docker-swarm集群上運行的python flask應用程序安裝一個通用的sqlite數據庫文件?

[英]How to mount a common sqlite database file for python flask application running on three node docker-swarm cluster?

我有一個python燒瓶REST應用程序,它在部署時創建一個.db sqlite數據庫文件。 此應用程序現在部署在三節點docker swarm群集上。 我使用swarm-stack文件在這些節點上部署容器。 我的問題是現在每個容器都有自己的.db文件,即每個應用程序實例的單獨數據庫。 我想要這個db文件的公共掛載點,以便每個服務都應該訪問一個公共數據庫。 我該如何實現呢? 我是碼頭工人的新手。

在整個節點/機器上共享文件不是Docker直接為您解決的問題,但您可以在共享存儲系統的上下文中查看Docker存儲驅動程序。 這有助於它與NFS,ZFS等解決方案集成。

但是,您提到您正在使用SQLite和Flask,使用SQLAlchemy驅動程序。 為了避免讓您頭疼,而不是嘗試在三個節點之間共享文件系統,您應該使用數據庫服務器,例如MySQLMariaDBPostgreSQL (僅舉幾例),所有這些都適用於SQLAlchemy。 這樣,您可以讓所有Flask容器連接到同一個數據庫容器,而不是嘗試與Flask應用程序的所有正在運行的實例共享相同的SQLite文件(這將經常/快速鎖定/降級)。

這個額外的數據庫可以在容器中輕松運行,也可以通過docker-compose管理。 這樣,只有一個節點需要訪問文件系統來存儲數據庫的數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM