我正在学习docker有一个工作的docker-compose实现与django/postgresql。一切都在按预期进行。我的问题是什么被认为是数据持久化的“最佳实践”以及数据的风险。
下面是我的完整docker-compose.yml:
version: '2'
services:
db:
image: postgres
volumes:
- postgresql:/var/lib/postgresql
ports:
- "5432:5432"
env_file: .env
web:
build: .
command: python run_server.py
volumes:
- .:/project
ports:
- "8000:8000"
depends_on:
- db
volumes:
postgresql:run_server.py脚本只进行检查,以确保数据库可以连接到数据库,然后运行python manage.py runserver。
因此,如果我停止我的容器并重新启动它们,数据仍然存在。我关注的是docker-compose down命令。此命令将删除数据库。这是故意的吗?这看起来很容易运行它,并且意外地造成了很多破坏。
有没有一种方法可以让数据库即使在这些容器被移除的情况下仍然存在?
发布于 2017-04-05 15:13:40
我遵循这个指南来集成Django和Docker。
使数据持久化的方法是将数据库设置在Docker镜像之外,让应用程序通过settings.py连接到数据库
有了这个技巧,当容器关闭时,数据库仍然存在,因为它在同一个容器之外。
另一个技巧是将数据库设置在另一个docker容器中
https://stackoverflow.com/questions/43221409
复制相似问题