我刚刚开始使用Docker,并使用Python3,Flask,UWSGI和nginx创建了一个镜像并运行容器。
现在我想在Flask中使用一个postgresql数据库。我阅读了以下页面,链接容器对我来说似乎合乎逻辑。 (https://hub.docker.com/_/postgres/)
我仍然有一些疑问,或者也许Docker的原理对我来说还不够清楚。但是,如果我创建一个postgresql镜像并运行容器,并将其链接到我的Flask应用程序,则在以下情况下会发生什么:
您可能已经注意到,我显然是使用Docker的初学者,也许我只是误解了这一原理。如果有人能指出我正确的方向,我将不胜感激!
最佳答案
我重建镜像或重新启动容器,我的数据库数据在哪里?没了吗
docker rm <my postgres container>
。唯一的错误是,是否将卷安装到容器上以暴露数据卷:docker run -td -p 5432:5432 -v /mydata/volume:/var/lib/postgresql/data postgres:9.5.2
我想在Flask(Docker)应用程序中使用数据库,我需要在配置中添加什么? (DATABASE_URI,NAME等。)
docker run -td -p 80:5000 -e POSTGRES_URL=172.12.20.1 mycontainer/flask:latest
在配置中,您将使用os.getenv('POSTGRES_URL', 'localhost')
。如果容器已链接,这允许您默认为localhost,否则可以将其指向在另一台计算机上运行的另一个容器。这样做更好,因为它可以为您的部署提供更大的灵活性。 我要备份数据库还是在其中加载数据?我可以直接连接吗?
IP:PORT
连接到Postgres一样。