烧瓶应用程序无法访问容器/主机外的sqlite数据库

时间:2018-03-31 00:14:04

标签: docker flask

我在docker容器中有一个烧瓶应用程序,它写入SQLite db的本地副本。

我想要做的是将数据库从容器中移出并让它驻留在我的主机上。 如何设置docker从容器运行python代码并读取和写入主机上的sql lite db。

2 个答案:

答案 0 :(得分:2)

使用bind-mount将主机文件共享到容器。

如果您将SQLite数据库文件设为app.db,则可以使用-v标记(或--mount标记)运行容器:

docker run -v /absolute/path/to/app.db:/flask/app/app.db <IMAGE>

文档:https://docs.docker.com/storage/bind-mounts/

答案 1 :(得分:0)

您有

  • 设置主机目录的所有权以匹配容器中用户的uidgid

  • 更改容器中用户的uidgid,以数字方式匹配拥有sqlite db文件目录的主机用户的uidgid

https://technicalseo.com/tools/schema-markup-generator/

描述了两种方法的好答案