Docker容器内Solr无法使用持久化存储的故障排查
Solr Docker部署挂载目录报错解决方法
问题根源
你将宿主机空目录./data直接挂载到容器的/var/solr,覆盖了容器原生/var/solr下的目录结构——Solr默认的home目录是/var/solr/data,挂载后该目录不存在,导致precreate-core脚本无法创建核心目录,最终Solr启动失败。
修复步骤
1. 调整挂载路径
修改docker-compose.yml中Solr服务的volumes配置,不要覆盖整个/var/solr,仅持久化核心数据所在的/var/solr/data目录:
version: '3' services: solr: image: solr ports: - "8983:8983" volumes: - ./data:/var/solr/data # 修改为挂载到/var/solr/data entrypoint: - bash - "-c" - "precreate-core stable; precreate-core unstable; precreate-core archive; exec solr -f" # 移除无用的命名卷定义,因为使用的是绑定挂载 # volumes: # data:
2. 确保宿主机目录权限正确
如果之前操作导致目录权限异常,执行以下命令初始化:
mkdir -p ./data chown -R 8983:8983 ./data
3. 重启容器
docker-compose down docker-compose up -d
验证
容器启动后,检查宿主机./data目录,会自动生成stable、unstable、archive三个核心的目录结构,同时Solr可正常访问http://localhost:8983。
内容的提问来源于stack exchange,提问作者theo
相关产品推荐
相关产品推荐

