Para tener una instancia de PostgreSQL corriendo en un contenedor simplemente se debe crear un pequeño archivo de configuración que le indique a docker-compose qué debería incluir en dicho contenedor.

**version: "3.3"
#versión de YAML

services:
  postgres_db:
	#nombre del microservicio
    image: postgres:13
    environment:
		#env variables para postgres
      - POSTGRES_DB=your_db_name
      - POSTGRES_USER=your_username
      - POSTGRES_PASSWORD=your_password
    ports:
      - 5432:5432
			#se vincula el puerto 5432 del host con el puerto 5432 de el contenedor.
    volumes:
      - ./postgres_data:/var/lib/postgresql/data
			#se crea un volumen para que la data de postgres no se pierda al momento de detener el contenedor.**

Y listo! Ya solo queda ejecutar docker-compose up y el contenedor con la instancia de postgres se ejecutará! Ahora podemos preguntarnos: ¿Y cómo me conecto a esa instancia de postgres?

Muy simple! solo debemos ir a nuestra terminal y ejecutar:

docker-compose exec postgres_db bash

Esto nos abrirá una terminal dentro del contenedor, luego debemos ejecutar

psql -h localhost -d <your_db_name> -U <your_username>

Siendo <your_db_name> el valor de**POSTGRES_DB** y <your_username> POSTGRES_USER (las variables de entorno que añadimos en el docker-compose.yml)

Esto si es que eres alguien a quien le gusta trabajar desde la terminal, pero si eres alguien a quien le gusta más utilizar un cliente gráfico como pgadmin, entonces solo debemos añadir un servicio más dentro de nuestro archivo de configuración para docker-compose.

**services:
	#config de arriba
	pg_admin:
		image: dpage/pgadmin4
    environment:
      - PGADMIN_DEFAULT_EMAIL=any_email
      - PGADMIN_DEFAULT_PASSWORD=any_password
			#estas credenciales son necesarias para hacer login.
    ports:
      - 8080:80
			#se vincula el puerto 8080 del host con el puerto 80 de el contenedor.**

Luego simplemente levantamos el servicio con docker-compose up y si vamos a [localhost:8080](<http://localhost:8080>), encontraremos la interfaz de pgadmin, la cual nos pedirá que hagamos login para continuar.

Las credenciales son las que se declararon dentro de la sección environment del servicio.

Listo, ya tenemos pgadmin en un contenedor, ahora solo nos falta conectarnos a la base de datos que esta dentro del otro contenedor. Después de hacer login, en la sección de servers damos click derecho y creamos un nuevo server y en la sección de connection colocamos los siguientes valores:

Y eso es todo! Ya podemos establecer conexiones por terminal o con el cliente gráfico.