docker提交更改,但启动错误

时间:2016-10-19 09:03:14

标签: docker

我想保存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错误:失败   启动容器:复制

2 个答案:

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