Running PostgreSQL using Docker

Murtuzaali Surti
Murtuzaali Surti

• 2 min read

🏷️ docker

🏷️ postgres

Running PostgreSQL via Docker is one of the things you can do to quickly try postgresql without installing or configuring it locally. It's one of the benefits of using Docker. In this quick tutorial, you will get to know how you can run postgresql inside a docker container terminal using psql (a terminal interface to interact with postgresql databases).

Pulling Official PostgreSQL Image

Pull the official image of postgresql from Docker Hub using the docker pull command.

docker pull postgres

You can specify the version of postgresql to pull.

docker pull postgres:latest
docker pull postgres:16

This will create a postgres image. You can verify that using the docker images command.

docker images

# output
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
postgres     latest    cff6b68a194a   5 weeks ago   432MB

Running the Image

Running the image means executing the image inside an isolated environment known as a container. It can be done using the docker run command.

docker run --name pgcontainer -e POSTGRES_PASSWORD=specify_your_password -d postgres

Let's understand each flag/argument:

  • --name :- the name of the container to be created. (example: pgcontainer)
  • -e :- environment variables to be fed into the container (here: POSTGRES_PASSWORD=specify_your_password).
  • -d :- runs the container in a detached mode (in background) without blocking the terminal.
  • the last argument postgres is the name of the image.

Run docker run --help for more information.

You can verify the container is running by using the docker ps command which will list all the running containers. A status of Up means the container is up and running.

docker ps

# Output
CONTAINER ID   IMAGE      COMMAND                  CREATED             STATUS             PORTS      NAMES
ebeab2ca77e9   postgres   "docker-entrypoint.s…"   About an hour ago   Up About an hour   5432/tcp   pgcontainer

Executing Commands Inside Container

You can execute commands inside the container by accessing it's terminal shell using the docker exec command. The -it flag specifies the mode (interactive) in which you want to access the shell. It is meant to keep the input stream alive even if the container is in detached mode. The below command will spin up a psql instance which you can use to create and interact with databases.

docker exec -it pgcontainer psql -U postgres

When you execute the above command, you can interact with the psql interface as shown below:

psql (16.3 (Debian 16.3-1.pgdg120+1))
Type "help" for help.

postgres=# |

Conclusion

This is just one of the ways you can use postgres' image independently using docker. For more advanced and integrated usage of postgres along with multiple services, consider using docker compose.


Creating My First Web Component: The <back-to-top> Button

Previous

Integrate Pagefind's Search with Astro: A Complete Setup Guide

Next