DEV Community

Cover image for Install PostgreSQL in a Docker Container
Aung Thu Oo
Aung Thu Oo

Posted on

Install PostgreSQL in a Docker Container

Install PostgreSQL in a Docker Container: A Beginner's Guide

1. Prerequisites

  • Docker installed on your machine
  • Node.js installed on your machine

2. Preparation

Create any folder you want, and then open it with your terminal.

mkdir <YOUR_FOLDER>
cd <YOUR_FOLDER>
code .
Enter fullscreen mode Exit fullscreen mode

3. Initialize a git repository.

git init
touch .gitignore
Enter fullscreen mode Exit fullscreen mode

Populate the .gitignore file with the following content:

*node_modules
Enter fullscreen mode Exit fullscreen mode

Create a file called compose.yaml in the project's root.

touch compose.yaml
Enter fullscreen mode Exit fullscreen mode

4. Database

I will use Postgres but not install it on my machine. Instead, I will use Docker to run it in a container. This way, I can easily start and stop the database without installing it on my machine.

Open the file compose.yaml and add the following content:

version: '3.9'

services:
  db:
    container_name: pgdb
    image: postgres:12
    restart: always
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: postgres
    ports:
      - 5432:5432
    volumes:
      - pgdata:/var/lib/postgresql/data

volumes:
  pgdata: {}
Enter fullscreen mode Exit fullscreen mode

then type in your terminal

docker compose up -d
Enter fullscreen mode Exit fullscreen mode

This will pull the Postgres image from Docker Hub and start the container.
The -d flag means that the container will run in detached mode so we can continue to use the terminal.

5.Testing

To check if the container is running:

docker ps -a
Enter fullscreen mode Exit fullscreen mode

Step into the db container

docker exec -it pgdb psql -U postgres
Enter fullscreen mode Exit fullscreen mode

Now that you are in the Postgres container, you can type:

\l
Enter fullscreen mode Exit fullscreen mode

Screenshot from 2024-09-20 11-37-23

\dt
Enter fullscreen mode Exit fullscreen mode

And you should see no relations.

You can now exit the container with the exit command.

exit  
Enter fullscreen mode Exit fullscreen mode

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

Top comments (0)

Heroku

Simplify your DevOps and maximize your time.

Since 2007, Heroku has been the go-to platform for developers as it monitors uptime, performance, and infrastructure concerns, allowing you to focus on writing code.

Learn More

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay