PostgreSQL è uno dei database relazionali open source più potenti e popolari. Grazie a Docker e Docker Compose, è possibile avviare rapidamente un'istanza PostgreSQL in un ambiente isolato e facilmente gestibile.
Prerequisiti
- Docker installato
- Docker Compose (versione V2, integrata in Docker CLI)
Creare il file docker-compose.yml
Il primo passo consiste nel definire il servizio PostgreSQL all'interno di un file docker-compose.yml. Ecco un esempio aggiornato e funzionante:
services:
  db:
    image: postgres
    restart: unless-stopped
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
      POSTGRES_DB: mydatabase
    ports:
      - "5432:5432"
    volumes:
      - pgdata:/var/lib/postgresql/data
volumes:
  pgdata:Avviare il container
Per avviare PostgreSQL, eseguire il comando seguente nella stessa directory in cui si trova il file docker-compose.yml:
docker compose up -dQuesto comando scaricherà l'immagine ufficiale di PostgreSQL (se non presente), creerà un volume per la persistenza dei dati e avvierà il container in background.
Connettersi al database
Una volta in esecuzione, è possibile connettersi al database con un client PostgreSQL come psql:
psql -h localhost -p 5432 -U user -d mydatabaseLa password richiesta sarà quella definita nella variabile POSTGRES_PASSWORD.
Fermare e rimuovere i container
Per fermare i container, utilizzare:
docker compose downPer rimuovere anche il volume (e quindi i dati persistenti):
docker compose down -vConclusione
Usare PostgreSQL con Docker Compose semplifica la gestione degli ambienti di sviluppo e test. È possibile avviare, fermare e isolare database in pochi comandi, mantenendo al tempo stesso la persistenza dei dati tramite i volumi Docker.