Where Does Weaviate Store Its Data?
Weaviate persists collections under PERSISTENCE_DATA_PATH, conventionally /var/lib/weaviate with a matching volume.
Last updated
Weaviate decides its storage with one variable: PERSISTENCE_DATA_PATH, defaulting to /var/lib/weaviate in container docs and ./data in bare runs. The volume mount must land on the same path the variable names, or the database writes somewhere Docker discards.
Single node setups pair that mount with a CLUSTER_HOSTNAME value. Multi node setups repeat the pattern per node with separate volumes. Native backup modules exist for newer versions, but the volume remains the floor that everything else stands on.
Where Weaviate stores this, by platform
/var/lib/weaviate
Container convention across official compose files. Pair with PERSISTENCE_DATA_PATH set to the same value and a stable CLUSTER_HOSTNAME.
./weaviate_data
Host side bind from compose examples. Named volumes work the same way. Keep the mount while upgrading images so collections survive.
Frequently asked questions
How do I persist Weaviate data in Docker?
Set the volume and PERSISTENCE_DATA_PATH to the same container path, commonly /var/lib/weaviate. A mismatch writes to an unmounted folder and data vanishes on recreate.
Can cluster nodes share one data volume?
Give every node its own data path. Sharing one volume between nodes trips the lock and corrupts reads. Cluster sync copies data, shared disks do not.
Does the default Docker setup keep data?
No. The default without a mount is ephemeral container storage. The quickstart compose adds a named volume for exactly this reason.
Notice an outdated path? Let us know.