我正在使用Docker Compose和标准的Neo4j映像。我没有指定要挂载的任何卷,但是当我关闭docker并将其重新备份时,它仍然具有旧数据。我找不到它在哪里/如何存储它。
我想重写它,以便每个新的Docker都有新的数据库。有什么想法吗?
docker-compose.yml:
neo4j:
image: neo4j:3.0
ports:
- "7474:7474"
- "7687:7687"
environment:
- NEO4J_AUTH=neo4j/password
volumes: []
尝试使用volumes: []
覆盖任何卷,但这不起作用
答案 0 :(得分:2)
您可以在清除docker-compose
部署的同时轻松清除所有数据,并在命令末尾附加-v
标志,即:
docker-compose down -v
这将停止您的部署,删除相关的容器并删除相关的卷。
编辑
正如Fryguy在评论中所说,您可以在使用-V
标志(大写字母)启动新部署时重新创建匿名卷,因此:
docker-compose up -V
将重新创建匿名卷,而不是从以前的容器中检索数据。
答案 1 :(得分:0)
发出docker-compose down命令后,它应删除所有容器。验证它们已被删除。
docker ps -a
您可以使用以下方法删除所有未连接的卷:
docker volume prune
我遇到的另一件事是我已经安装了Neo4j桌面,并且当我以为我正在使用docker实例时,我实际上是在使用本地数据库。当我关闭docker容器但仍然能够访问数据库时,我终于意识到了这一点。
答案 2 :(得分:0)
这是启动和停止容器时的预期行为。文件系统被保留。
如果要清除数据,请使用
启动一个新容器docker run
使用compose,您可以使用
--force-recreate
标志。