Installation - Docker

Install PostgreSQL with pgvector using Docker

Installation using Docker

Docker provides an easy way to run PostgreSQL with pgvector pre-installed. This method works on both macOS and Windows.

Prerequisites

  • Install Docker Desktop for your platform
  • Make sure Docker Desktop is running before proceeding

Quick Start with Docker Run

  1. Run PostgreSQL with pgvector:

    docker run -d \
      --name postgres-pgvector \
      -e POSTGRES_PASSWORD=password \
      -e POSTGRES_DB=zooly2_local \
      -p 5432:5432 \
      -v postgres_data:/var/lib/postgresql/data \
      pgvector/pgvector:pg17
  2. Enable pgvector extension:

    docker exec -it postgres-pgvector psql -U postgres -d zooly2_local -c "CREATE EXTENSION IF NOT EXISTS vector;"
  1. Create docker-compose.yml in your project root:

    version: '3.8'
    
    services:
      postgres:
        image: pgvector/pgvector:pg17
        container_name: zooly-postgres
        environment:
          POSTGRES_DB: zooly2_local
          POSTGRES_USER: postgres
          POSTGRES_PASSWORD: password
        ports:
          - "5432:5432"
        volumes:
          - postgres_data:/var/lib/postgresql/data
          - ./init-db.sql:/docker-entrypoint-initdb.d/init-db.sql
        healthcheck:
          test: ["CMD-SHELL", "pg_isready -U postgres -d zooly2_local"]
          interval: 10s
          timeout: 5s
          retries: 5
        restart: unless-stopped
    
    volumes:
      postgres_data:
        driver: local
  2. Create init-db.sql file (optional, for automatic extension setup):

    CREATE EXTENSION IF NOT EXISTS vector;
  3. Start PostgreSQL:

    docker-compose up -d
  4. Verify it's running:

    docker-compose ps
  5. View logs:

    docker-compose logs postgres

Useful Docker Commands

# Stop PostgreSQL
docker-compose down

# Stop and remove volumes (⚠️ deletes data)
docker-compose down -v

# Restart PostgreSQL
docker-compose restart postgres

# Connect to PostgreSQL
docker exec -it zooly-postgres psql -U postgres -d zooly2_local

# Or using docker run
docker exec -it postgres-pgvector psql -U postgres -d zooly2_local

Next Steps

After installation, proceed to:

  • Configuration - Configure and manage PostgreSQL service
  • Setup - Create database and enable extensions