当与容器内的现有数据一起提交时,Neo4j docker容器数据为空

时间:2017-12-20 05:07:18

标签: docker neo4j

我正在学习Neo4j和Docker。我想创建neo4j docker容器并使用cypher query lang向它添加一些数据。并将其导出到另一个主机。 我该怎么做?

我做的步骤

  1. 我使用docker run --publish=7474:7474 --publish=7687:7687 -e NEO4J_AUTH=neo4j/Password0 neo4j:latest运行Neo4j泊坞窗图像。据我了解,它会拉动neo4j图像,创建并运行新的neo4j docker容器。

  2. 通过neo4j-browser执行一些cypher查询,将数据添加到neo4j容器中。

  3. 然后我执行了docker container commit NEO4J_CONTAINER_ID。它从容器中创建新的docker镜像。

  4. 停止所有docker容器进程并运行docker run NEW_NEO4J_IMAGE

  5. 我通过浏览器检查了数据,它是空的

    我假设neo4j docker容器将数据保存在容器中。

1 个答案:

答案 0 :(得分:2)

如果你看下面的链接

https://docs.docker.com/engine/reference/builder/#notes-about-specifying-volumes

  

更改Dockerfile中的卷:如果任何构建步骤在声明后更改了卷中的数据,那么这些更改将被丢弃。

运行容器并尝试提交更改时也会发生相同的情况。如果所做的更改是对卷进行的,则在提交期间将丢弃数据。

您在映像中保留数据的方法是在容器的启动/引导时加载它。或以其他方式使用外部主机卷,然后将数据存储在那里以实现持久性