Saltar al contenido

Docker – Postgres y pgAdmin 4: Conexión rechazada

Recuerda que en las ciencias informáticas cualquier problema puede tener diversas soluciones, no obstante nosotros te enseñaremos lo más óptimo y mejor.

Solución:

En este caso:

  1. Pgadmin no puede conectarse a localhost, pero psql funciona desde fuera de Docker.
  2. tanto pgadmin como Postgres se ejecutan como contenedores

Aunque no ha indicado si lo está haciendo, lo ideal sería que ambos contenedores formaran parte de una red puente personalizada para la resolución automática de DNS.

Si no se agregan explícitamente, serán parte de la red de puente predeterminada.

Para averiguar las redes creadas en el tiempo de ejecución de Docker, escriba: $ docker network ls

Algunas redes se enumerarán en la consola, tal vez encuentre una [name]_default debe ser su red.

Ejecutar
docker network inspect [name]_default
mostrará un montón de información, para nosotros la más importante es la dirección IPv4, algo como esto:
"7c3cd7532ab8aacc70830afb74adad7296d9c8ddd725c498af2d7ee2d2c2aadd":
"Name": "intime_postegres_1",
"EndpointID": "56a9cb574469f22259497b72719f9f4a3e555b09f95058fcf389ef5287381f28",
"MacAddress": "02:42:ac:12:00:02",
"IPv4Address": "172.18.0.2/16",
"IPv6Address": ""

En lugar de usar localhost para el nombre/ip del servidor en el cuadro de diálogo del nuevo servidor de pgAdmin, conéctese a la “dirección IPv4” de la instancia de postgres.

En mi caso conectando en 172.18.0.2:5432trabajado como un encanto.

Yo también tuve el caso cuando puedes conectarte con psql comando en la terminal pero no con pgAdmin4. La siguiente solución funcionó para mí.

Primero –

docker ps

A partir de ahí, obtendrá el nombre/ID del contenedor del contenedor de postgres, luego haga:

docker inspect name_of_container_here

Te dará algo como esto:

 "Networks": 
                "bridge": 
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "f35dbe66b36cd38673aad6e1278ad33031ef9d5abd34582d4b91955e288f855e",
                    "EndpointID": "2e63ea59e9d0de7526bb02ba29bc0b16bcad51b8963127ad380416d15da994db",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.2",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:02",
                    "DriverOpts": null
                
            

Tenga en cuenta la dirección IP y proporcione eso al crear un nuevo servidor en pgAdmin4 –
ingrese la descripción de la imagen aquí

Tuve el mismo problema y lo resolví de una manera no canónica, pero muy satisfactoria para mi flujo de trabajo local.

Siempre empiezo mi contenedor postgresql con un docker-compose.yaml expediente. Así que acabo de agregar pgAdmin al mismo archivo de redacción:

version: "3.7"
services:
  my_awesome_db:
    image: postgres:latest
    ports:
      - "5432:5432"
    container_name: postgresql-local
    volumes:
      - "/var/run/postgres.sock:/var/run/postgres/postgres.sock"
      - "/home/myuser/docker-apps/volumes/postgres-data:/var/lib/postgresql/data"
  pg_admin:
    image: dpage/pgadmin4:latest
    container_name: pgadmin4
    ports:
      - "15432:80"
    environment:
      - GUNICORN_THREADS=1
      - [email protected]
- PGADMIN_DEFAULT_PASSWORD=does_not_matter depends_on: - my_awesome_db

Así que accedo a pgAdmin en mi localhost: 15432 (solo porque es fácil de recordar), y configuré pgAdmin con:

Host: my_awesome_db
Port: 5432
Username: postgres

Sección de Reseñas y Valoraciones

Tienes la opción de añadir valor a nuestra información aportando tu veteranía en las anotaciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *