![見出し画像](https://assets.st-note.com/production/uploads/images/141765735/rectangle_large_type_2_ae13faa67fc578799f46c5dc87a49241.png?width=800)
Photo by
shirokurochannel
Docker neo4j データの永続化をしてみる
Docker使っててうまく起動できなくて
コンテナ削除して立ち上げ直すことがよくあります
しかしその度にデータが飛んでしまったらデータベースをローカルで使えないので永続化します
最初ハマりまくってたんですがdocker volumeというのを使うとできるっぽいです
Dcoker Volumeについての記事を見つけました
ちなみにDataは下記に保存されるらしいです
Linux: /var/lib/docker/volumes/
macOS: ~/Library/Containers/com.docker.docker/Data/vms/0/
Windows: C:\ProgramData\DockerDesktop\vm-data\
docker volume
docker volume create neo4j-data
すでに立ち上がってる場合はコンテナを一旦削除
docker stop nervous_mendel
docker rm nervous_mendel
nervous_mendel はneo4jのコンテナの名前
なんでこんな名前になったのか経緯は忘れた
そして
docker run -d --name nervous_mendel \
-p 7474:7474 -p 7687:7687 \
-v neo4j-data:/data \
-e NEO4J_AUTH=none \
neo4j
-v に注目。
neo4j-dataがさっき作ったvolumeの名前
data: はここにマウントしますっていうこと
CREATE (a:Person {name: 'Alice', age: 30})
CREATE (b:Person {name: 'Bob', age: 25})
CREATE (a)-[:FRIENDS_WITH]->(b)
データをクリエイト
再びコンテナを削除
docker stop nervous_mendel
docker rm nervous_mendel
再び立ち上げる
docker run -d --name nervous_mendel \
-p 7474:7474 -p 7687:7687 \
-v neo4j-data:/data \
-e NEO4J_AUTH=none \
neo4j
全件取得でデータが永続化できているか確かめる
MATCH (n:Person) RETURN n
![](https://assets.st-note.com/img/1716606487243-CSiRGyxuHu.png?width=800)
この記事が気に入ったらサポートをしてみませんか?