I’m encountering an issue with Docker volumes not persisting data between container restarts when using Docker Compose. Here’s a breakdown of my setup and the problem I’m facing:
Docker Compose Configuration:
version: '3.7'
services:
solrcloud1:
image: solr:8.11.2
container_name: solrcloud1
ports:
- "8981:8983"
environment:
- ZK_HOST=zk:2181
networks:
- solr
depends_on:
- zk
volumes:
- solrcloud1_data:/var/solr
solrcloud2:
image: solr:8.11.2
container_name: solrcloud2
ports:
- "8982:8983"
environment:
- ZK_HOST=zk:2181
networks:
- solr
depends_on:
- zk
volumes:
- solrcloud2_data:/var/solr
solrcloud3:
image: solr:8.11.2
container_name: solrcloud3
ports:
- "8983:8983"
environment:
- ZK_HOST=zk:2181
networks:
- solr
depends_on:
- zk
volumes:
- solrcloud3_data:/var/solr
zk:
image: zookeeper:3.6.2
container_name: zk
restart: always
hostname: zk
ports:
- 2181:2181
- 7001:7000
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: server.1=zk:2888:3888;2181
ZOO_4LW_COMMANDS_WHITELIST: mntr, conf, ruok
ZOO_CFG_EXTRA: "metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider metricsProvider.httpPort=7000 metricsProvider.exportJvmInfo=true"
networks:
- solr
volumes:
- zk_data:/data
networks:
solr:
volumes:
solrcloud1_data:
external: false
solrcloud2_data:
external: false
solrcloud3_data:
external: false
zk_data:
external: false
I confirmed that the volumes are creating:
$ docker volume ls
DRIVER VOLUME NAME
local 1zk_3sc_solrcloud1_data
local 1zk_3sc_solrcloud2_data
local 1zk_3sc_solrcloud3_data
local 1zk_3sc_zk_data
local 8a1dadc9debf247e3b5b11d64367438806ac839e9bf99566916a473110782f80
local 15e8ec0fb6052d0458d9f1bba9812326a0eccfe844d75cb7fbf0019ab1cc03f1
local a242b48bedc509504825dcf9ec5d300692282a80cb87bbb0f694c67c2ad969f2
local b8183473dd64a163dc91c6eb9d878675344b6655fd766837fe92e1c1f1381060
Issue:
- I’ve defined volumes for each Solr container to persist data using the solrcloud1_data, solrcloud2_data, and solrcloud3_data named volumes.
- After creating collections and indexing data, I stop and remove all containers using docker-compose down.
- When I restart the containers with docker-compose up, the collections, indexed data, and cores are not preserved, and it seems like the volumes are not mounted correctly.
- I’ve verified that the named volumes exist using docker volume ls, and they appear in the list.
What could be causing this issue, and how can I ensure that my Docker volumes correctly persist data between container restarts?
Any insights or suggestions would be greatly appreciated. Thank you in advance!
Arjun Parmar is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.