Solr 是一款基于 Apache Lucene™ 构建的流行、高性能开源企业级搜索平台。本 Docker 镜像封装了 Solr 服务,提供开箱即用的部署方案,适用于快速搭建搜索服务、索引管理及数据检索场景。镜像旨在简化 Solr 的部署流程,支持灵活配置和扩展,满足不同规模的企业搜索需求。
从 Docker Hub 拉取***维护的 Solr 镜像(基于 wodby/solr 仓库):
bashdocker pull wodby/solr:latest # 拉取最新版本,建议指定具体版本号(如 9.4.0)以避免兼容性问题
通过 docker run 命令启动单节点 Solr 服务,默认创建一个核心(core)并暴露 Web 管理界面:
bashdocker run -d \ --name solr \ -p 8983:8983 \ # 映射 Solr 默认端口(8983)到主机 -e SOLR_CORE=mycore \ # 指定初始化核心名称(首次启动时自动创建) -v solr-data:/var/solr/data \ # 挂载数据卷持久化索引数据 wodby/solr:latest
启动后,通过 http://localhost:8983 访问 Solr Admin UI,核心 mycore 已自动创建。
使用 docker-compose.yml 配置更复杂的部署(如指定堆大小、日志级别、持久化路径等):
yamlversion: '3.8' services: solr: image: wodby/solr:9.4.0 # 指定具体版本 container_name: solr restart: always # 服务异常时自动重启 ports: - "8983:8983" # 管理界面及 API 端口 volumes: - ./solr-data:/var/solr/data # 本地目录挂载,持久化索引数据 - ./solr-config:/opt/solr/server/solr/configsets # 挂载自定义配置集(可选) environment: - SOLR_CORE=mycore # 初始化核心名称 - SOLR_HEAP_SIZE=2g # JVM 堆大小(根据服务器资源调整,建议为物理内存的 50%) - SOLR_LOG_LEVEL=INFO # 日志级别(DEBUG/INFO/WARN/ERROR) - SOLR_JAVA_MEM="-Xms2g -Xmx2g" # 自定义 JVM 内存参数(覆盖 SOLR_HEAP_SIZE) - SOLR_PORT=8983 # 容器内服务端口(默认 8983,一般无需修改) networks: - solr-network # 自定义网络隔离 networks: solr-network: driver: bridge volumes: solr-data: # 若使用命名卷,需提前创建:docker volume create solr-data
启动命令:
bashdocker-compose up -d # 后台启动服务 docker-compose logs -f # 查看实时日志
除启动时通过 SOLR_CORE 自动创建核心外,也可通过 Solr Admin UI 或命令行手动管理:
bashdocker exec -it solr solr create_core -c newcore -d basic_configs # 使用默认配置集创建核心 newcore
bashdocker exec -it solr solr delete_core -c newcore
如需修改索引字段(如分词器、字段类型),可挂载自定义配置集(configsets):
./solr-config/myconfig),包含 solrconfig.xml(索引配置)和 schema.xml(字段定义);docker-compose.yml 中挂载该目录到容器内的 /opt/solr/server/solr/configsets:
yamlvolumes: - ./solr-config:/opt/solr/server/solr/configsets
bashdocker exec -it solr solr create_core -c mycore -d /opt/solr/server/solr/configsets/myconfig
| 环境变量名 | 默认值 | 描述 |
|---|---|---|
SOLR_CORE | 空 | 启动时自动创建的核心名称,若为空则需手动创建核心。 |
SOLR_HEAP_SIZE | 512m | Solr JVM 堆大小(如 2g),优先级低于 SOLR_JAVA_MEM。 |
SOLR_JAVA_MEM | 空 | 自定义 JVM 内存参数(如 -Xms2g -Xmx2g),覆盖 SOLR_HEAP_SIZE。 |
SOLR_LOG_LEVEL | INFO | 日志级别,可选 DEBUG/INFO/WARN/ERROR。 |
SOLR_PORT | 8983 | 容器内 Solr 服务端口,需与端口映射保持一致。 |
SOLR_AUTH_TYPE | 空 | 认证类型,可选 basic(Basic Auth),启用需配合 SOLR_AUTH_USER 和 SOLR_AUTH_PASSWORD。 |
SOLR_AUTH_USER | 空 | Basic Auth 用户名(仅 SOLR_AUTH_TYPE=basic 时生效)。 |
SOLR_AUTH_PASSWORD | 空 | Basic Auth 密码(仅 SOLR_AUTH_TYPE=basic 时生效)。 |
SOLR_ZK_HOST | 空 | SolrCloud 模式下 ZooKeeper 集群地址(如 zk1:2181,zk2:2181/solr)。 |
Solr 的索引数据默认存储在容器内的 /var/solr/data 目录,为避免容器重启后数据丢失,需通过数据卷挂载持久化该目录:
yamlvolumes: - solr-data:/var/solr/data # 命名卷由 Docker 管理,路径在 `/var/lib/docker/volumes/`
yamlvolumes: - ./solr-data:/var/solr/data # 本地目录需确保权限正确(如 `chmod 777 ./solr-data`)
生产环境需启用认证以保护管理界面和 API,通过环境变量配置:
yamlenvironment: - SOLR_AUTH_TYPE=basic - SOLR_AUTH_USER=admin - SOLR_AUTH_PASSWORD=SecurePassword123!
访问时需通过 http://admin:SecurePassword123!@localhost:8983 认证。
通过 Docker 网络限制 Solr 服务仅允许内部应用访问,避免直接暴露公网:
yamlnetworks: - backend-network # 与应用服务共享同一网络,不暴露 8983 端口到主机
wodby/solr:9.4.0),避免 latest 标签自动更新导致兼容性问题。SOLR_HEAP_SIZE(建议不超过物理内存的 50%),并配置 CPU 限制(如 cpus: 2)。/var/solr/data 目录(如通过 docker exec solr tar -czf /backup/solr-data-$(date +%F).tar.gz /var/solr/data)。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429