Ein Docker-Container für Neo4j wird gemäß der Dokumentation gestartet und funktioniert ordnungsgemäß mit dem folgenden Befehl:
$ 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
Wenn ich versuche, einen neo4j-admin
Speicherauszug der Datenbank durchzuführen , wird folgende Fehlermeldung angezeigt:
$ 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
Wenn jedoch der Neo4j-Prozess gestoppt wird, was die einzige Möglichkeit zu sein scheint, die Datenbank freizugeben, wird der Container geschlossen. Dies scheint das erwartete Verhalten von Docker zu sein. Daher scheint es unmöglich zu sein, neo4j-admin dump
aus dem Container heraus aufzurufen, ohne dass die Datenbank verwendet wird.
Wie kann dies behoben werden, während Docker noch verwendet wird?
docker exec -ti myname-neo4j
und an der Bash-Eingabeaufforderung im Container ausführen.