Skip to content

Getting Started with PostgreSQL: Installation and Setup Using Docker ⚙️

PostgreSQL is one of the most powerful open-source relational databases available today. One of the easiest ways to set up and manage a PostgreSQL instance is by using Docker. This guide will walk you through the process of installing PostgreSQL with Docker, configuring it, and using DBeaver as a GUI database manager.

By the end of this post, you'll have a fully functioning PostgreSQL instance running in Docker and be able to connect to it using DBeaver.


Prerequisites

Before we get started, make sure you have the following:


Step 1: Setting Up PostgreSQL with Docker

We will use Docker to set up PostgreSQL quickly and efficiently.

Create a docker-compose.yml File

Create a new directory for your PostgreSQL project and add a docker-compose.yml file with the following content:

version: '3.8'

services:
  postgres:
    image: postgres:15
    container_name: my_postgres
    restart: always
    environment:
      POSTGRES_USER: myuser
      POSTGRES_PASSWORD: mypassword
      POSTGRES_DB: mydatabase
    ports:
      - "5432:5432"
    volumes:
      - pg_data:/var/lib/postgresql/data

volumes:
  pg_data:
    driver: local

Explanation of the Configuration

  • POSTGRES_USER: The username for the PostgreSQL database.
  • POSTGRES_PASSWORD: The password for the PostgreSQL user.
  • POSTGRES_DB: The name of the default database.
  • ports: Maps the container's PostgreSQL port (5432) to your local machine.
  • volumes: Persists your database data so it remains intact even if the container is stopped or deleted.

Step 2: Start the PostgreSQL Container

Open a terminal in your project directory and run:

docker-compose up -d

This command will: - Download the PostgreSQL Docker image (if it's not already available locally). - Start the PostgreSQL container in the background.

To check if your container is running, use:

docker ps

You should see my_postgres listed as one of the running containers.


Step 3: Configuring Environment Variables

If you prefer to use an environment file (.env), create a .env file in your project directory:

POSTGRES_USER=myuser
POSTGRES_PASSWORD=mypassword
POSTGRES_DB=mydatabase

Then, update your docker-compose.yml to use these variables:

environment:
  POSTGRES_USER: ${POSTGRES_USER}
  POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
  POSTGRES_DB: ${POSTGRES_DB}

This makes it easier to manage sensitive information securely.


Step 4: Connecting to PostgreSQL Using DBeaver

Now that your PostgreSQL instance is up and running, let's connect to it using DBeaver, a popular open-source database management tool.

Installing DBeaver

  1. Download DBeaver from the official website.
  2. Install it on your system.

Connecting to PostgreSQL in DBeaver

  1. Open DBeaver and click on Database > New Database Connection.
  2. Select PostgreSQL from the list.
  3. Enter the following details:
  4. Host: localhost
  5. Port: 5432
  6. Database: mydatabase
  7. Username: myuser
  8. Password: mypassword
  9. Click Test Connection to verify that the connection works.
  10. Click Finish to save the connection.

Now, you can use DBeaver to manage your PostgreSQL database visually!


Step 5: Common Docker Commands for PostgreSQL

Here are some useful Docker commands to manage your PostgreSQL container:

  • Stop the container:

    docker-compose down
    

  • Restart the container:

    docker-compose restart
    

  • Access the PostgreSQL shell:

    docker exec -it my_postgres psql -U myuser -d mydatabase
    


Conclusion

Congratulations! 🎉 You’ve successfully set up a PostgreSQL database using Docker and connected to it using DBeaver. This setup is perfect for development and testing environments. In future posts, we'll dive deeper into optimizing queries and using powerful PostgreSQL extensions like TimescaleDB and pgvector for more advanced use cases.

Stay tuned for more tutorials on PostgreSQL optimization and performance tuning! 🚀📊