docker工提交更改,但启动错误

我想保存docker neo4j数据库,然后重新启动它以继续使用这些数据。 首先我运行命令启动neo4j

docker run --publish=7474:7474 --publish=7687:7687 --volume=/Users/wangyiran/project/testplatformV6/data/neo4j1 neo4j:3.0 

插入一些数据后,我想提交更改,我使用docker psfindneo4j continer id 429a3584673b然后我运行命令提交更改

 docker commit 429a3584673b copy 

我通过docker图像检查图像,副本出口

但是当我想重新启动复制图像

 docker start copy 

那个报告

来自守护进程的错误响应:没有这样的容器:复制错误:无法启动容器:复制

如果将数据存储在主机操作系统的文件系统中,而不是存储在容器上,那么当您使用相同的卷参数启动复制映像时,将会获取数据。

事实上,如果您只提交一份副本,并使用仅用于数据的副本映像重新启动相同的数据库,则甚至不需要执行该操作。 每次你使用你在问题上发布的命令启动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的数据目录的path,但很可能不是/ var / lib / neo4j / datadirectory。 你必须检查出来,并相应地修改最后的“docker运行”命令

docker commit保存一个容器作为一个新的形象 ,它不会创build一个容器的副本。

您可以使用与原始run类似的命令从图像中启动新的容器:

 docker run --publish=7474:7474 --publish=7687:7687 --volume=/Users/wangyiran/project/testplatformV6/data/neo4j1 copy 

所有这些变化都是图像名称,当您提交时,您copy其标记的图像名称copy