Creating postgres docker container in Ubuntu 18.04 like...
docker run -it -e POSTGRES_USER="root" -e POSTGRES_PASSWORD="root" -e POSTGRES_DB="ny_taxi" -v /my/absolute/path/to/my/local/folder/ny_taxi_postgres_data:/var/lib/postgresql/data:rw -p 5432:5432 postgres:13
...but getting errors like:
OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (127.0.0.1), port 5432 failed: server closed the connection unexpectedly
when trying to connect via
from sqlalchemy import create_engine
engine = create_engine('postgresql://root:root@localhost:5432/ny_taxi')
engine.connect()
I also can't connect when using psql
➜  ~ psql -h localhost -p 5432 -U root -W
Password for user root: 
psql: connection to server at "localhost" (127.0.0.1), port 5432 failed: server closed the connection unexpectedly
    This probably means the server terminated abnormally
    before or while processing the request.
or using pgadmin4 from my local desktop or changing "localhost" to the value "0.0.0.0"
I see no local postgres service running:
➜  ~ systemctl status postgresql
Unit postgresql.service could not be found.
➜  ~ service postgresql status
Unit postgresql.service could not be found.
and this is the only thing that appears to be using the specified port:
sudo lsof -i -P -n | grep LISTEN
.
.
.
docker-pr 31534            root    4u  IPv6 4358622      0t0  TCP *:5432 (LISTEN)
This is also the only docker container I have running and the image was just downloaded today:
➜  ~ docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
406c9a5efc34        postgres:13         "docker-entrypoint.s…"   8 minutes ago       Up 7 minutes        0.0.0.0:5432->5432/tcp   affectionate_bose
Anyone have any ideas what could be going on here? Any debugging suggestions?
*UPDATE
The original debug observation by @jjanes in the comments initially worked for my issue (I have now installed the lasted version of docker and containers now use both IPv4 and IPv6), but now no longer working though I don't recall changing anything since the last time I checked.
Am still / once again getting errors when running
from sqlalchemy import create_engine
engine = create_engine('postgresql://root:root@localhost:5432/ny_taxi')
engine.connect()
with an error message
OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (127.0.0.1), port 5432 failed: server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request.
and cannot connect to the DB with pgadmin4 or psql like
➜ psql -h localhost -p 5432 -U root -d ny_taxi -W           
Password for user root: 
psql: connection to server at "localhost" (127.0.0.1), port 5432 failed: server closed the connection unexpectedly
    This probably means the server terminated abnormally
    before or while processing the request.
Yet I see now that both IPv4 and IPv6 are being used:
➜ sudo lsof -i -P -n | grep LISTEN
.
.
.
docker-pr 29152            root    4u  IPv4 6892807      0t0  TCP *:5432 (LISTEN)
docker-pr 29164            root    4u  IPv6 6890891      0t0  TCP *:5432 (LISTEN)
➜ docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
47c77203991c   postgres:13   "docker-entrypoint.s…"   25 minutes ago   Up 25 minutes   0.0.0.0:5432->5432/tcp, :::5432->5432/tcp   sleepy_chandrasekhar
The logged output I see from the docker container is
2022-08-12 03:59:12.942 UTC [1] LOG:  starting PostgreSQL 13.8 (Debian 13.8-1.pgdg110+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit
2022-08-12 03:59:12.942 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2022-08-12 03:59:12.942 UTC [1] LOG:  listening on IPv6 address "::", port 5432
2022-08-12 03:59:12.954 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2022-08-12 03:59:12.971 UTC [62] LOG:  database system was shut down at 2022-08-12 03:59:12 UTC
2022-08-12 03:59:12.982 UTC [1] LOG:  database system is ready to accept connections
This log output for the DB container does not change even when trying to psql connect using a wrong username or password (eg. having some message about a failed login attempt) -- thus making me suspect some kind of port forwarding issue with docker.
Seems very weird. Anyone know what could be going on here? Anything I should check?
