我正在学习Neo4j和Docker。我想创建neo4j docker容器并使用cypher query lang向它添加一些数据。并将其导出到另一个主机。 我该怎么做?
我做的步骤
我使用docker run --publish=7474:7474 --publish=7687:7687 -e NEO4J_AUTH=neo4j/Password0 neo4j:latest
运行Neo4j泊坞窗图像。据我了解,它会拉动neo4j图像,创建并运行新的neo4j docker容器。
通过neo4j-browser执行一些cypher查询,将数据添加到neo4j容器中。
然后我执行了docker container commit NEO4J_CONTAINER_ID
。它从容器中创建新的docker镜像。
停止所有docker容器进程并运行docker run NEW_NEO4J_IMAGE
。
我通过浏览器检查了数据,它是空的
我假设neo4j docker容器将数据保存在容器中。
答案 0 :(得分:2)
如果你看下面的链接
https://docs.docker.com/engine/reference/builder/#notes-about-specifying-volumes
更改Dockerfile中的卷:如果任何构建步骤在声明后更改了卷中的数据,那么这些更改将被丢弃。
运行容器并尝试提交更改时也会发生相同的情况。如果所做的更改是对卷进行的,则在提交期间将丢弃数据。
您在映像中保留数据的方法是在容器的启动/引导时加载它。或以其他方式使用外部主机卷,然后将数据存储在那里以实现持久性