我想保存docker neo4j数据库,然后重新启动它以继续使用数据。 首先我运行命令启动neo4j
docker run --publish=7474:7474 --publish=7687:7687 --volume=/Users/wangyiran/project/testplatformV6/data/neo4j1 neo4j:3.0
插入一些数据后,我想提交更改 我使用docker ps找到neo4j continer id 429a3584673b 然后我运行命令提交更改
docker commit 429a3584673b copy
我通过泊坞窗图像检查图像,复制退出
但是当我想重新启动复制图像时
docker start copy
报告
来自守护程序的错误响应:没有这样的容器:copy错误:失败 启动容器:复制
答案 0 :(得分:2)
如果将数据存储在主机操作系统的文件系统中而不是容器中,则在使用相同的卷参数启动复制映像时,您将获取数据。
事实上,如果您只提交副本并使用复制图像仅为数据重新启动相同的数据库,您甚至不需要这样做。每次使用您在问题上发布的命令启动neo4j图像时:
docker run --publish=7474:7474 --publish=7687:7687 --volume=/Users/wangyiran/project/testplatformV6/data/neo4j1 neo4j:3.0
您将拥有一个数据库容器,该容器使用存储在/ Users / wangyiran / project / testplatformV6 / data / neo4j1中的数据。如果情况并非如此,您需要将docker run命令修改为:
docker run --publish=7474:7474 --publish=7687:7687 --volume=/Users/wangyiran/project/testplatformV6/data/neo4j1:/var/lib/neo4j/datadirectory neo4j:3.0
你应该知道--volume的工作原理如下:--volume / path / to / host / directory:/ path / to / container / directory。
注意:我不知道neo4j的数据目录的路径,但它很可能不是/ var / lib / neo4j / datadirectory。你必须检查出来并修改最后一个" docker run"相应的命令
答案 1 :(得分:1)
docker commit
将容器另存为新的图片,它不会创建容器的副本。
您可以使用与原始run
类似的命令从图像中启动新容器:
docker run --publish=7474:7474 --publish=7687:7687 --volume=/Users/wangyiran/project/testplatformV6/data/neo4j1 copy
所有更改都是图片名称,您在提交时标记为copy
。