見出し画像

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\

GPT4o


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


OK できてるみたいだ


この記事が気に入ったらサポートをしてみませんか?