Dockerized Neo4J通过重启以某种方式维持Volume?

时间:2018-08-24 15:52:00

标签: docker neo4j docker-compose

我正在使用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: []覆盖任何卷,但这不起作用

3 个答案:

答案 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    

标志。