Skip to content

Setup Solr on Docker

1. Directory Setup

1.1 Windows Setup

Create directory: C:\Docker-data\Solr-volume

Inside this directory create: C:\Docker-data\Solr-volume\lib

Place JDBC driver inside: sqljdbc822.jar

Note: This driver is required for SQL Server integration using Solr DataImportHandler.

2. Linux Setup

2.1 Directory Creation

Create directory: mkdir -p /root/solr/solr-data/lib

2.2 Permissions (IMPORTANT)

chown -R 8983:8983 /root/solr/solr-data
chmod -R 755 /root/solr/solr-data 

Explanation: Solr container runs as UID 8983. Without permission fixes, Solr cannot write data.


3. Docker Compose Configuration

3.1 Windows docker-compose.yml

version: '3.8'
services:
  solr:
    image: solr:8.11
    container_name: solr_server
    ports:
      - "8983:8983"
    environment:
      - SOLR_HOME=/var/solr/data
    volumes:
      - "C:/Docker-data/Solr-volume:/var/solr/data"
    command: solr-foreground
    restart: unless-stopped

Run: docker compose up -d

3.2 Linux docker-compose.yml

version: '3.8'
services:
  solr:
    image: solr:8.11
    container_name: solr_server
    ports:
      - "8983:8983"
    environment:
      - SOLR_HOME=/var/solr/data
    volumes:
      - /root/solr/solr-data:/var/solr/data
    command: solr-foreground
    restart: unless-stopped

Run: docker compose up -d

4. Verify Solr Installation

Open browser: http://localhost:8983

Expected result: Solr Admin UI dashboard.

Check container logs: docker logs solr_server

5. Add JDBC Driver Configuration

If using SQL Server integration:

Copy sqljdbc822.jar to: /var/solr/data/lib/

Modify solrconfig.xml and add: <lib dir="/var/solr/data/lib/" regex="sqljdbc822.jar" />

Restart container: docker restart solr_server

6. Create Solr Core

Create core: docker exec -it solr_server solr create -c mycore

Verify in UI → Core Admin → mycore.

7. Create Additional Cores

To create more cores: docker exec -it solr_server solr create -c newcore

Each core will be stored in the persistent volume automatically.

8. Troubleshooting

  • Permission denied: Fix Linux permissions again.
  • Container not starting: docker logs solr_server
  • Port conflict: Change host port in docker-compose.yml.

9. Production Recommendations (Optional)

  • Use resource limits
  • Enable monitoring
  • Configure backups
  • Use version pinning

Example resource limits:

deploy:
  resources:
    limits:
      memory: 2g

10. Stop Solr

docker compose down

← Previous | Next →