Neo4j的docker容器按照文档启动,并使用以下命令正常工作:
$ docker run \ --detach \ --publish=7474:7474 \ --publish=7473:7473 \ --publish=7687:7687 \ --volume=$HOME/neo4j/data:/data \ --volume=$HOME/neo4j/logs:/logs \ --volume=$HOME/neo4j/ssl:/ssl \ --ulimit=nofile=40000:40000 \ --name=myname-neo4j \ neo4j:3.1.1
当我尝试执行数据库的neo4j-admin
转储时,出现错误:
$ docker exec -ti myname-neo4j bin/neo4j-admin dump --database=graph.db --to=/home/name/myname.dump command failed: the database is in use -- stop Neo4j and try again
但是,如果Neo4j进程停止,这似乎是释放数据库的唯一方法,容器closures。 这似乎是Docker的预期行为。 因此,在不使用数据库的情况下,从容器中调用neo4j-admin dump
似乎是不可能的。
如何在仍然使用Docker的情况下解决这个问题?
1:停止容器。
docker stop myname-neo4j
2:取出容器
docker rm myname-neo4j
3:作为交互模式运行容器(-it),不带选项(detach)并执行shell(/ bin / bash)。
docker run \ --publish=7474:7474 \ --publish=7473:7473 \ --publish=7687:7687 \ --volume=$HOME/neo4j/data:/data \ --volume=$HOME/neo4j/logs:/logs \ --volume=$HOME/neo4j/ssl:/ssl \ --ulimit=nofile=40000:40000 \ --name=myname-neo4j \ -it \ neo4j:3.1.1 \ -c /bin/bash
现在你在neo4j容器内而不运行Neo。
4:通过访问( http:// yourhost:7474 )中的URI端点来检查neo未启动。 您应该看到“无法连接”消息。
5:转储你的数据库
docker exec -ti myname-neo4j bin/neo4j-admin dump --database=graph.db --to=/home/name/myname.dump